题解 | #密码截取#
密码截取
https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1
从中间扩展
#include <iostream>
#include <valarray>
using namespace std;
int searchd(char *s, char *p, int len){
int ans = 0;
while (len--) {
if(*s == *p){
ans += 2;
}else{
break;
}
s--;
p++;
}
return ans;
}
int main() {
string input;
cin >> input;
int n = input.size();
int ans = 0;
for(int i = 1; i < n - 1; ++i){
if(input[i - 1] == input[i + 1])
ans = max(ans, 1 + searchd(&input[i - 1], &input[i + 1], min(i, n - i)));
if(input[i - 1] == input[i])
ans = max(ans, searchd(&input[i - 1], &input[i], min(i, n - i + 1)));
}
cout << ans;
}
// 64 位输出请用 printf("%lld")

