解题思路:
注意事项:
参考代码:
#include<iostream> #include<string> using namespace std; const int maxn = 100000; int order[26]; int dp[maxn]; int main(){ string s; cin >> s; int n = s.length(); int i, j; for(i = 0; i < n; ++i){ order[s[i] - 'a'] = i; } int temp, res; while(cin >> s){ n = s.length(); res = 0; for(i = 0; i < n; ++i){ dp[i] = 1; for(j = 0; j < i; ++j){ if(order[s[j] - 'a'] <= order[s[i] - 'a'] && (temp = dp[j] + 1) > dp[i]){ dp[i] = temp; } } res = max(res, dp[i]); } cout << res; } cout << endl; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1215 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:821 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:268 |
Cylinder (C语言描述+详细分析)浏览:3375 |
1017题解浏览:663 |
【偶数求和】 (C语言代码)浏览:460 |
永远的丰碑 (C语言代码)浏览:608 |
孤独的骑士 (C语言代码)浏览:1416 |
剔除相关数 (C语言代码)浏览:1156 |
素数的个数 一直是超时浏览:698 |