给你一个串,问你这个串是不是关于某个字母对称的,这个串是一个首位相接的圆。
思路:
水题,直接枚举每一个为对称点试一下就行了,不解释了。
#include<stdio.h> #include<string.h> char str[110]; int main () { while(~scanf("%s" ,str) && strcmp(str ,"#")) { int len = strlen(str); int mk = -1; for(int i = 0 ;i < len ;i ++) { int q = len / 2; int low = i - 1 ,up = i + 1; if(low == -1) low = len - 1; if(up == len) up = 0; while(q--) { if(str[low] != str[up]) break; low -- ,up ++; if(low == -1) low = len - 1; if(up == len) up = 0; } if(q == -1) { mk = i; break; } } if(mk == -1) puts("NO"); else printf("YES %d " ,mk); } return 0; }