判断一个数字中是否包含两个相同的子串 | |
描述: | 判断给定的一个数字,把它当成字符串以后,该字符串中是否包含相同的两个子串,子串的长度要求大于等于2。 比如:12123,该数字包含两个“12”子串; 又比如:1223122,该数字包含两个“122”子串。 |
运行时间限制: | 无限制 |
内存限制: | 无限制 |
输入: | 待判断的正整型数字,最大长度为9。 |
输出: | 0:不包含; 1:包含。 |
样例输入: | 12123 |
样例输出: | 1 |
答案提示: | |
我的代码:
#include<iostream>
using namespace std;
int strmatch(char *ch1,char*ch2,int len)
{
int i;
int flag=1;
for(i=0;i<len;i++)
if(ch1[i]!=ch2[i])
{
flag=0;
break;
}
return flag;
}
int main()
{
char inte[10]; int i,j,k;
cin>>inte;
int len=strlen(inte);
int flag=0;
if(len>=3)
{
for(i=2;i<=len-1;i++)
{
for(j=0;j+i-1<len;j++)
{
for(k=j+1;k+i-1<len;k++)
{
if(strmatch(inte+j,inte+k,i))
{
cout<<1<<endl;
return 0;
}
}
}
}
cout<<0<<endl;
}
else
cout<<0<<endl;
return 0;
}