简单单词接龙

有 n 个单词( 1≤n≤50 ),每个单词由 2 个小写字母组成,并约定第 1 个单词为龙头。 例如:n=8。8 个单词为:aa、ac、ab、de、bh、hk、cd、af

接龙的方法为前一个单词的第 2 个字母和后一个单词的第 1 个字符相同

此时,可接的方法有: aa-ac-cd-de 长度为 4 ,即龙上有 4 个单词。

 也可以接:aa-ab-bh-hk,长度为 4 。

还可以接:aa-af,长度为 2。

程序要求给出单词之后,求出最长龙的长度。

输入复制

7

aa

ac

ab

de

bh

hk

cd

输出复制

4

#include <iostream>
#include <string>
using namespace std;
string a[100];
string c[100];
int ma = 0;
int f[100];
void aaa(int,int);
int main()
{
	int n;
	cin>>n;
	
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
	}
	aaa(n,0);
	cout<<ma;
	return 0;
}
void aaa(int n,int sum)
{
	if(sum>=n)
	{
		
		return;
	}
	for(int i = 0;i<n;i++)
	{
		if(sum==0)
		{
			c[sum] = a[0];
			f[0] = 1;
			ma = max(ma,sum+1);
			aaa(n,sum+1);
			f[0] = 0;
		}
		else if(c[sum-1][1]==a[i][0]&&f[i]==0)
		{
			c[sum] = a[i];
			f[i] = 1;
			ma = max(ma,sum+1);
			aaa(n,sum+1);
			f[i] = 0;
		}
	}
	
	return;
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐