代码找不到错误
题目在http://noi.openjudge.cn/ch0107/30/
#include
#include
using namespace std;
int main(){
char a[1000]={0},b[1000]={0},c[1000]={0};
cin>>a>>b;
strcpy(c,a);
strcat(a,c);
strcpy(c,b); //字符重复两次与字符环效果一样
strcat(b,c);
int ai,bi,l=0,m1=strlen(a),m2=strlen(b),len=0,max_len=0,q=max(m1,m2);
for(ai=0;ai//先取a中的字符
for(bi=0;bi//再在b字符串中找与a相同的
len=0; //防止上一个循环没结尾
for(l=0;l//定义l用于比较
if(b[bi+l]==a[ai+l]&&a[ai+l]!=0&&b[bi+l]!=0){ //如果相等,len++; !=0是为了防止将NUL进行比较
len++;
}
else{
max_len=max(max_len,len); //不等,则len等于0,退出l循环,找下一个相等的b
len=0;
break;
}
}
max_len=max(max_len,len); //防止i循环结尾时a==b
}
}
cout<
代码修改如下:
q的值修改为 q= min(m1,m2)/2; 不超过最短的字符串的长度。
#include<iostream>
#include<string.h>
using namespace std;
int main() {
char a[1000] = { 0 }, b[1000] = { 0 }, c[1000] = { 0 };
cin >> a >> b;
strcpy(c, a);
strcat(a, c);
strcpy(c, b); //字符重复两次与字符环效果一样
strcat(b, c);
int ai, bi, l = 0, m1 = strlen(a), m2 = strlen(b), len = 0, max_len = 0, q = min(m1, m2)/2;
for (ai = 0; ai < m1; ai++) { //先取a中的字符
for (bi = 0; bi < m2; bi++) { //再在b字符串中找与a相同的
len = 0; //防止上一个循环没结尾
for (l = 0; l < q; l++) { //定义l用于比较
if (a[ai + l] != 0 && b[bi + l] != 0 && b[bi + l] == a[ai + l]) { //如果相等,len++; !=0是为了防止将NUL进行比较
len++;
}
else {
max_len = max(max_len, len); //不等,则len等于0,退出l循环,找下一个相等的b
len = 0;
break;
}
}
max_len = max(max_len, len); //防止i循环结尾时a==b
}
}
cout << max_len;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
string a,b;
cin>>a>>b;
int lena=a.length(),lenb=b.length();
int max=0;
if(lena>lenb)
{
for(int i=0; i<lena; i++)
{
for(int j=0; j<lenb; j++)
{
if(a[i]==b[j])
{
int count=0;
for(int m=i,n=j,k=0; k<lenb; k++,m++,n++)
{
if(m==lena)
{
m=0;
}
if(n==lenb)
{
n=0;
}
if(a[m]!=b[n])
{
break;
}
else
{
count++;
}
}
if(max<count)
{
max=count;
}
}
}
}
}
else
{
for(int i=0; i<lenb; i++)
{
for(int j=0; j<lena; j++)
{
if(b[i]==a[j])
{
int count=0;
for(int m=i,n=j,p=0; p<lena; p++,m++,n++)
{
if(m==lenb)
{
m=0;
}
if(n==lena)
{
n=0;
}
if(b[m]!=a[n])
{
break;
}
else
{
count++;
}
}
if(count>max)
{
max=count;
}
}
}
}
}
cout<<max<<endl;
return 0;
}
试试这个
测试用例似乎没问题,什麽地方给提示错误了呢?
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!