wky_wsy @ 2024-11-23 15:30:41
#include <iostream>
#include <string>
#include <algorithm>
#define int long long
using namespace std;
bool ishw(string s){
int l=s.size();
--l;
int sb=l/2;
for(int i=0;i<sb;i++){
if(s[i]!=s[l-i]) return false;
}
return true;
}
signed main(){
int n;
string s;
cin.tie(0);
cin>>n;
while(n--){
cin>>s;
int l=s.size();
for(int i=2;i<l;i++){
string s1=s.substr(0,i);
string s2=s.substr(i-1);
if(ishw(s1)&&ishw(s2)){
printf("Yes");
goto ls;
}
}
printf("No");
ls: putchar('\n');
}
}
by CHEN08_94 @ 2024-11-23 15:59:47
1.你这个判断回文的函数写错了 2.你这个字符串截取的位置不对,人家要求两段拼接起来,所以不能重叠
#include <iostream>
#include <string>
#include <algorithm>
#define int long long
using namespace std;
bool ishw(string s){
string x=' '+s;
int l=s.length();
int sb=0;
if(l%2==0) sb=l/2;
else sb=(l-1)/2;
for(int i=1;i<=sb;i++)
{
if(x[i]!=x[l-i+1]) return false;
}
return true;
}
signed main(){
int n;
string s;
cin.tie(0);
cin>>n;
while(n--){
cin>>s;
int l=s.size();
for(int i=2;i<l;i++){
string s1=s.substr(0,i);
string s2=s.substr(i,l);
if(ishw(s1)&&ishw(s2)){
printf("Yes");
goto ls;
}
}
printf("No");
ls: putchar('\n');
}
}
```@[wky_wsy](luogu://user/1323415)