题解 | #密码截取#
密码截取
https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1
#include <algorithm>
#include <iostream>
#include <bits/stdc++.h>
#include <iterator>
#include <vector>
using namespace std;
int main() {
string s;
cin >> s;
// vector<int> v(s.size(),1);
vector<int> d(s.size(),0);
// int m = 0;
// int flag = 0;
// if(s.size()%2==1){
// m = s.size()/2;
// flag = 1;
// }else {
// m = s.size()/2 -1;
// }
for (int i=1; i<=s.size(); i++) {
for (int j=0; j<i; j++) {
string t = s.substr(j,i-j+1);
string r = t;
reverse(r.begin(), r.end());
if (r.compare(t)==0) {
d[i] = max(d[i], i-j+1);
}
}
}
int maxi=0;
for(auto i=0; i<d.size();i++){
maxi = max(maxi,d[i]);
}
// if(flag == 1){
// cout << maxi*2 - 1<<endl;
// }else {
// cout << maxi*2<<endl;
// }
cout << maxi<<endl;
}
// 64 位输出请用 printf("%lld")


查看27道真题和解析