题解 | #密码截取#
密码截取
https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1
#include <stdio.h> #include <string.h> // 1. 密码是对称的 // 2. 在字符串中找到最长的回文串即可HJ85 // 1. 得到回文字符串 // 2. 依次遍历每一个字符 // 2.1 以该字符为中心的最大回文子串 aba型 // 2.2 abba型 // 3. 输出大小 int main() { char input[2510] = {0}; gets(input); int len = strlen(input); int left = 0; int right = 0; int maxlen = 1; int temp = 1; for(int i = 0; i < len; ++ i) { //aba temp = 1; for(left=i-1, right=i+1; left>=0 && right<len; --left, ++right) { if(input[left] == input[right]) { temp += 2; } else { break; } } maxlen = maxlen > temp ? maxlen : temp; //abba temp = 0; for(left=i, right=i+1; left>=0 && right<len; --left, ++right) { if(input[left] == input[right]) { temp += 2; } else { break; } } maxlen = maxlen > temp ? maxlen : temp; } printf("%d", maxlen); return 0; }