xtuoj 回文串
题目
思路
用双指针法判断是否是回文串,用两个指针分别 指向头和尾,如果他们两指的字母不相等,则立马可以判断不是回文串,否则就头指针后移,尾指针前移,继续判断,循环结束后仍然没有被判断为不是回文串,则它是回文串。
关键是找到从某个字母开始到结尾是不是回文串,如果是,那么只要拼接这个字母前面的那些字母就好了,拼接个数就是该字母下标,如果不是,那么继续往后找
代码
#include<stdio.h>
#include<string.h>
#include<stdbool.h>bool ishw(char *s,int l,int r){while(l<r){if(s[l]!=s[r]) return false;l++;r--;}return true;
}int main(){int T;scanf("%d",&T);while(T--){char s[1001];scanf("%s",s);int len=strlen(s);int i;for(i=0;i<len;i++){if(ishw(s,i,len-1)) break;}printf("%d\n",i);}return 0;
}