c_cpp 最长的字符串子序列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 最长的字符串子序列相关的知识,希望对你有一定的参考价值。
/*Given a string, find the longest subseqence of chars from string that conntains all vowels may be repeated
but in a e i o u order*/
#include <bits/stdc++.h>
using namespace std;
int val(char c){
if(c == 'a'){return 1;}
if(c == 'e'){return 2;}
if(c == 'i'){return 3;}
if(c == 'o'){return 4;}
if(c == 'u'){return 5;}
return 0;
}
int ls(string s){
if(s == ""){return 0;}
int n = s.size();
int dp[n];
memset(dp,-1,sizeof(dp));
if(val(s[0])){dp[0] = 1;}
for(int i = 1;i < n;i++){
if(val(s[i])){
dp[i] = 1;
for(int j = 0;j< i;j++){
if(val(s[j]) && val(s[j]) <= val(s[i]) && dp[i] < dp[j] + 1){
dp[i] = dp[j] + 1;
}
}
}
}
for(int i = 0;i < n;i++){
cout << dp[i] << " ";
}cout << endl;
return dp[n - 1];
}
int main() {
string s;
cin >> s;
cout << ls(s);
return 0;
}
以上是关于c_cpp 最长的字符串子序列的主要内容,如果未能解决你的问题,请参考以下文章
子串子序列问题
dp求解各种子串子序列
两个字符串的所有公共最长子序列
使用 Python 的字符串子序列内核和 SVM
华为OD机试真题Java实现判断字符串子序列真题+解题思路+代码(2022&2023)
编程100%22-08 字符串子序列