前面写:只是个人代码/总结,不一定是标准的。 仅供参考! 如果有错误,就指出交流,期待共同进步!
回文列【问题的说明】
“回文串”无论是正读还是反读都是相同的字符串,例如“level”或“noon”等就是回文串。 列举字符串,最少要在字符串的末尾追加多少个字符,才能使字符串成为回文串?
【输入格式】
有多项测试数据。
每个测试数据的第一行是正整数n,表示字符串的长度,下一行是长度为n的字符串,并且字符串中只有小写字母。
N=0表示输入结束,不需要处理。
40%数列元素的个数N 1 N 100;
30%数列元素的个数N 1 N 1000;
20%数列元素的个数N 1 N 10000;
10%数列元素的个数N 1 N 100000;
【输出格式】
对于每组测试数据,输出非负整数。 添加最小字符数,以使字符串成为回文字符串。
【样品输入】
3
aba
4
aaac
0
【样品输出】
0
3
【示例代码】
# include bits/stdc.husingnamespacestd; booljudge(charch[],int n ) ) { bool b=true; char ch1[n]; for(intI=0; in; I ) { ch1[n-i-1]=ch[i]; }for(intI=0; in; I ) if(ch[I]!=ch1[I](b=false; 黑; } } return b; (}int main ) ) while(1) ) { int n; cinn; if(n==0) {break; } char ch[n]; cinch; OOLB=judge(ch,n ); if(b==true ) { cout'0'endl; 连续; } else { int res=n-1; int num=n; for(intI=0; in; I ) { char ch1[num]; strncpy(ch1,ch i,num ); ch1[num]=' '; BOOLB=Judge(ch1,num ); if(b==true ) {res=i; 黑; (num----); } coutresendl; } } return 0; () ) ) ) )。