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