题解 | #密码截取#
密码截取
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")