题解 | #密码截取#
密码截取
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;
}
查看12道真题和解析