【无标题】

第一层的意思是这是关于回文子串的问题

哈士奇为了查出海狗的真实身份,日夜苦学英语,结果学着学着睡着了……在梦中,哈士奇梦到了与海狗大战的情形,或许是现实的照应,哈士奇发现决战竟然是字符串的对决,如果能够掌握回文的力量,一定能打败海狗!那么你能帮助哈士奇找到最长的回文子串打败海狗么?

回文串是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
那么回文子串就是一个字符串中选取的一部分连续的字符,且这串字符是回文串,如"pp"就是“apple”的回文子串。

输入格式:

每组第一行输入整数n(0 接下来n行,每行输入一个长度为10的字符串S。
本题多组输入。

输出格式:

字符串S里面最长回文子串的长度。

输入样例:

在这里给出一组输入。例如:

3
abcdefghij
1111111111
qejfbbdios

输出样例:

在这里给出相应的输出。例如:

1
10
2
#include   
#include   
  
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;  
}

 

有类似检查回文的代码

时间不够该说再见了 

你可能感兴趣的:(算法)