|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
回文字符串就是从前往后读和从后往前读都一样的字符串。比如 abcba, aaa, QoQ。现在给你一个字符串,你可以从中删去一些字符,在不改变原来字符相对顺序的情况下,得到一个最长的回文字符串。
比如 abxdba, 删去字符 x 后,可以得到 abdba,是一个回文字符串。你的任务就是求出给定的字符串删去若干字符后可以得到的最长的回文字符串的长度。字符串长度不超过 1000,字符范围为 ‘a’ 到 ‘z’。
输入描述
有多组输入。
每组一行字符串。
输出
每组测试数据输出一个整数,表示可以得到的最长的回文字符串的长度。
样例输入
aabbaabb
computer
abzla
samhita
样例输出
6
1
3
3
本帖最后由 jhq999 于 2022-6-4 21:19 编辑
- #include <stdio.h>
- #include <stdlib.h>
- int main ()
- {
- int i=0,j=0,k=0,len=0,count=0,max1=0,max2=0,half=0,r=0;
- char str[1001]={0};
- scanf("%s",str);
- for(len=0;str[len];len++);
- for(i=0;i<len;i++)//////
- {
- count=0;
- r=i+1;
- for(j=i;j>=0;j--)
- {
- for(k=r;k<len;k++)
- {
- if(str[k]==str[j])
- {
- count++;
- r=k+1;
- break;
- }
-
- }
-
- }
- printf("%d %d,",count,i);
- if(max1<=count)max2=max1,max1=count,half=i;
- }
- max1*=2;
- max2*=2;
-
- if(max2==max1)max1+=1;
- printf("%d %d %d",len,max1,max2);
-
- return 0;
-
- }
复制代码
|
|