NC219235. alan的字符串
描述
输入描述
第一行包含一个字符串,表示字符串 。 第二行包含一个字符串,表示字符串 。
输出描述
一行,包含一个整数,表示满足条件 和 的最长子序列的长度
示例1
输入:
aaaaa bbbbb
输出:
0
示例2
输入:
aaaaa abbbb
输出:
1
C++(clang++11) 解法, 执行用时: 136ms, 内存消耗: 504K, 提交时间: 2021-05-10 19:43:51
# include<iostream> # include<cstring> using namespace std; const int N=1e5; const int M=50; int n,m; char s1[N],s2[M],cpy[M]; int len=0; int maxlen=0; void dfs(int cnt) { if(cnt>m) { for(int i=1;i<=len/2;i++) if(cpy[i]!=cpy[len-i+1]) return ; int num=1; for(int i=1;i<=n;i++) { if(cpy[num]==s1[i]) { num++; } if(num>len) break; } if(num<=len) return ; maxlen=max(maxlen,len); return ; } cpy[++len]=s2[cnt]; dfs(cnt+1); len--; dfs(cnt+1); } int main() { cin>>(s1+1); cin>>(s2+1); n=strlen(s1+1); m=strlen(s2+1); dfs(1); cout<<maxlen<<endl; return 0; }