/*
* @Description: To iterate is human, to recurse divine.
* @Autor: Recursion
* @Date: 2022-03-09 18:38:00
* @LastEditTime: 2022-03-10 13:02:27
*/
#include<bits/stdc++.h>
using namespace std;
char s1[30];
char s2[30];
int len;
int find(char ch)
{
for(int i=0;i<len;i++)
if(s1[i]==ch)
return i;
}
void dfs(int l1,int r1,int l2,int r2)
{
int pos=find(s2[l2]);
if(pos>l1) dfs(l1,pos-1,l2+1,l2+pos-l1);
if(pos<r1) dfs(pos+1,r1,l2+pos-l1+1,r2);
cout<<s2[l2];
}
int main()
{
cin>>s1;
cin>>s2;
len=strlen(s2);
dfs(0,len-1,0,len-1);
}
P1827 [USACO3.4]美国血统 American Heritage
最新推荐文章于 2025-03-30 12:00:00 发布
该博客探讨了一种使用递归解决字符串匹配问题的方法。通过DFS(深度优先搜索)策略,程序寻找两个字符串s1和s2中是否存在子串匹配。在C++中实现的代码展示了如何遍历和比较字符,找到匹配的位置。
1065

被折叠的 条评论
为什么被折叠?



