题解 | #密码截取#一维动态规划
密码截取
https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1
#include <iostream>
#include <vector>
#include <string>
using namespace std;
bool isduicheng(string& s, int start, int end) {
while (start <= end) {
if (s[start++] != s[end--]) {
return false;
}
}
return true;
}
int main() {
string s;
getline(cin, s);
vector<int> dp(s.size() + 1, 0);
dp[0] = 0;
dp[1] = 1;
for (int i = 2; i <= s.size(); i++) {
dp[i] = dp[i - 1];
for (int j = 0; j <= i - dp[i - 1]; j++) {
if (isduicheng(s, j, i)) {
int len = i - j + 1;
dp[i] = max(len, dp[i - 1]);
break;
}
}
}
cout << dp[s.size()];
}
// 64 位输出请用 printf("%lld")
查看16道真题和解析
卓越教育公司福利 132人发布