怎么改?
查看原帖
怎么改?
361438
封禁用户楼主2020/7/18 10:21
#include<bits/stdc++.h>
using namespace std;
char str[21][21],tmp;
int n,i,j,f[21];
int check(char a[],char b[],bool h)
{
	int i,j,lena,lenb;
	lena=strlen(a);
	lenb=strlen(b);
	int t;
	t=min(lena,lenb);
	for(i=t;i>=1;i--)
	{
		for(j=1;j<=i;j++)
		{
			if(a[lena-i+j-1]!=b[j-1])
			{
				break;
			}
		}
		if(j>i)
		{
			if(i==lena||i==lenb&&h==0)
			{
				return 0;
			}
			else
			return i;
		}
	}
	return 0;
}
void dfs(char tmp[])
{
	int i,j;
	for(i=1;i<=n;i++)
	{
		int t=check(tmp,str[i],1);
		if(t>0&&f[i]<2)
		{
			
			f[i]++;
			dfs(tmp);
			f[i]--; 
		}
	}
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie();
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>str[i];
	}
	cin>>tmp;
	dfs(tmp);
	cout<<check("abc","bcfde",1);
}
2020/7/18 10:21
加载中...