#include<iostream>
#include<string>
using namespace std;
int main(){
int n;
cin>>n;
int i,j,k;
for(i=0;i<n;i++){
string str;
cin>>str;
int count=0;
bool t=true;
int b,y;
int s=str.length();
for(j=0;j<s-1;j++){
for(k=j+1;k<s;k++){
if(str[j]==str[k])
{
t=true;
for(b = j,y =1;y <=(k +1 -j)/2;b++,y++) / /两个箭头要移动的范围!!!
{
if(str[b] != str[(k + j - b)]) //两个箭头的方向移动!!!
t=false;
}
if(t)
count++;
}
}
}
cout<<count<<endl;
}
return 0;
#include<string>
using namespace std;
int main(){
int n;
cin>>n;
int i,j,k;
for(i=0;i<n;i++){
string str;
cin>>str;
int count=0;
bool t=true;
int b,y;
int s=str.length();
for(j=0;j<s-1;j++){
for(k=j+1;k<s;k++){
if(str[j]==str[k])
{
t=true;
for(b = j,y =1;y <=(k +1 -j)/2;b++,y++) / /两个箭头要移动的范围!!!
{
if(str[b] != str[(k + j - b)]) //两个箭头的方向移动!!!
t=false;
}
if(t)
count++;
}
}
}
cout<<count<<endl;
}
return 0;
}
认真想一下!!!
两个箭头的移动,同向和方向的简洁代码!!!