#include
char qdu[100050];
int manacher(char *str)
{
int i;
int res = 0;
for(i = 1;i<=strlen(str)-1;i++)
{
int l = i;
int r = i;
while(str[i] == str[r+1]){ //以中心扩展,如果中心值abbba相等,那么当判断到第一个b的时候可以拓展到第三个b
r++;
i = r;
}
while(str[l-1] == str[r+1]) //向两侧扩展,找最大。
{
r++;
l--;
}
if(res < r-l+1) {//更新最大值
res = r-l+1;
}
}
return res;
}
int main()
{
int loop;
qdu[0] = '$';
// gets(qdu+1);
while(gets(qdu+1));
printf("%dn",manacher(qdu));
return 0;
}
#include
#include
int IsPalindrome(char *s, int begin, int end);
int main(void)
{
char pwdStr[10000];
while(scanf("%s", pwdStr) != EOF)
{
int len = 1;
for(int i = 0; pwdStr[i] != ''; i++)
{
for (int j = 0; pwdStr[i + j] != ''; j++)
{
if (IsPalindrome(pwdStr, i, i + j))
{
if (len < (j + 1))
{
len = j + 1;
}
}
}
if (len >= (strlen(pwdStr) - i)) { break; }
}
printf("%dn", len);
}
return 0;
}
int IsPalindrome(char *s, int begin, int end)
{
int i_begin = begin;
int i_end = end;
while(i_begin <= i_end)
{
if (s[i_begin++] != s[i_end--]) { return 0; }
}
return 1;
}
#include
int main()
{
int loop;
char qdu[100050];
qdu[0] = '$';
while(gets(qdu+1)){
int res = 0;
for(int i = 1;i
int l = i; int r=i;
while(qdu[i] == qdu[r+1]){//以中心扩展,如果中心值abbba相等,那么当判断到第一个b的时候可以拓展到第三个b
r++; i++;
}
while(qdu[l-1] == qdu[r+1]) //向两侧扩展,找最大。
{
r++; l--;
}
if(res < r-l+1) {//更新最大值
res = r-l+1;
}
}
printf("%dn",res);
}
return 0;
}
// {
// int loop;
// char qdu[100050];
// // qdu[0] = '$';
// while(gets(qdu)){
// int res = 0;
// for(int i = 1;i
// int l = i;
// int r = i;
// while(qdu[i] == qdu[r+1]){//以中心扩展,如果中心值abbba相等,那么当判断到第一个b的时候可以拓展到第三个b
// r++;
// i = r;
// }
// while(qdu[l-1] == qdu[r+1]) //向两侧扩展,找最大。
// {
// r++;
// l--;
// }
// if(res < r-l+1) {//更新最大值
// res = r-l+1;
// }
// }
// printf("%dn",res);
// }
// return 0;
// }
#include
int main()
{
int loop;
char qdu[100050];
// qdu[0] = '$';
while(gets(qdu )){
int res = 0;
for(int i = 0;i
int l = i;
while(qdu[i] == qdu[i+1]){//以中心扩展,如果中心值abbba相等,那么当判断到第一个b的时候可以拓展到第三个b
i++;
}
while(qdu[l-1] == qdu[i+1]) //向两侧扩展,找最大。
{
i++;
l--;
}
if(res < i-l+1) {//更新最大值
res = i-l+1;
}
}
printf("%dn",res);
}
return 0;
}
马拉车算法(易理解版)_GameRoad-CSDN博客
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)