称号:字符串统计回文子的数量。
分析:dp,暴力。因为数据是小,直接暴力可以解决。
说明:(UVa最终评出800该)。
#include#include #include #include using namespace std;char str[82];char ans[3200][82];int main(){ while (~scanf("%s",str)) { int count = 0,len = strlen(str); for (int i = 1 ; i <= len ; ++ i) for (int s = 0 ; s < len ; ++ s) { int flag = 1; for (int t = s+i-1 ; t >= s ; -- t) if (str[s+s+i-1-t] != str[t]) { flag = 0; break; } if (flag) { for (int j = 0 ; j < i; ++ j) ans[count][j] = str[s+j]; ans[count][i] = 0; int same = 0; for (int j = 0 ; j < count ; ++ j) if (!strcmp(ans[j], ans[count])) { same = 1; break; } if (!same) count ++; } } printf("The string \'%s\' contains %d palindromes.\n",str,count); /* printf("The %d unique palindromes in \'boy\' are",count); for (int i = 0 ; i < count-1 ; ++ i) { printf(" \'%s\'",ans[i]); if (i < count-2) printf(","); else printf(" and "); } printf("\'%s\'.\n\n",ans[count-1]); */ } return 0;}
版权声明:本文博客原创文章。博客,未经同意,不得转载。