第一层的意思是这是关于回文子串的问题
哈士奇为了查出海狗的真实身份,日夜苦学英语,结果学着学着睡着了……在梦中,哈士奇梦到了与海狗大战的情形,或许是现实的照应,哈士奇发现决战竟然是字符串的对决,如果能够掌握回文的力量,一定能打败海狗!那么你能帮助哈士奇找到最长的回文子串打败海狗么?
回文串是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
那么回文子串就是一个字符串中选取的一部分连续的字符,且这串字符是回文串,如"pp"就是“apple”的回文子串。
每组第一行输入整数n(0<n<10)。
接下来n行,每行输入一个长度为10的字符串S。
本题多组输入。
字符串S里面最长回文子串的长度。
在这里给出一组输入。例如:
3
abcdefghij
1111111111
qejfbbdios
在这里给出相应的输出。例如:
1
10
2
#include <stdio.h>
#include <string.h>
int main() {
int n;
char s[10];
while (scanf("%d", &n) == 1) {
for (int i = 0; i < n; i++) {
scanf("%s", s);
int len = strlen(s);
int max_len = 0;
for (int j = 0; j < len; j++) {
for (int k = j + 1; k < len; k++) {
if (s[j] == s[k] && j + 1 < k) {
int cur_len = k - j + 1;
if (cur_len > max_len) {
max_len = cur_len;
}
}
}
}
printf("%d\n", max_len);
}
}
return 0;
}
?
有类似检查回文的代码
时间不够该说再见了?