输入描述:
输入包括n+1行: 第一行为单词个数n(1 ≤ n ≤ 50) 接下来的n行,每行一个单词word[i],长度length(1 ≤ length ≤ 50)。由小写字母构成
输出描述:
输出循环单词的种数
输入例子:
5 picture turepic icturep word ordw
输出例子:
2
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
bool isSubstring(string s1,string s2)
{
bool flag=false;
if(s1==""||s2=="")
return flag;
int len=s2.size()-s1.size();
if(len<0)
return flag;
int i;
for(i=0;i<len;i++)
{
if(s1==s2.substr(i,s1.size()))
{
flag=true;
break;
}
}
return flag;
}
int main()
{
int n;
while(cin>>n)
{
vector<string> word(n);
int i,j;
for(i=0;i<n;i++)
cin>>word[i];
int num=0;
string s;
for(i=0;i<n;i++)
{
if(word[i]=="")
continue;
s=word[i]+word[i];
int flag=0;
for(j=i+1;j<n;j++)
{
if(word[j]=="")
continue;
if(word[i].size()!=word[j].size())
continue;
if(isSubstring(word[j],s))
{
word[j]="";
flag++;
if(flag==1)
num++;
}
}
if(flag==0)
num++;
}
cout<<num<<endl;
}
}