竞赛讨论区 > 白兔的字符串代码问题
头像
Shine✨201903171223380
发布于 2019-09-27 09:06
+ 关注

白兔的字符串代码问题

#include<iostream>
#include<string>
#include<vector>
using namespace std;
vector<string> sub_string(string t,string s);
bool tonggou(string t,string s,int iteration=0)
{
	if(t==s)
	{
		return true;
	}
	else
	{
		iteration+=1;
		if(iteration==s.size())
		{
			return false;
		}
		
		int l=t.size()-1;
		string p=t.substr(1,l);
		t=p+t[0];
		if(tonggou(t,s,iteration)==true)
		{
			return true;
		}
		if(tonggou(t,s,iteration)==false)
		{
			return false;
		}
	}

}


int main()
{
    vector<string>t;
    string s;
    cin>>s;
    int m;
    cin>>m;
	int i;
    for(i=0;i<m;i++)
    {
		string y;
		cin>>y;
        t.push_back(y);
		vector<string>o=sub_string(t[i],s);//找到了所有的子串
		//判断是否是循环同构的
		int k=0;
	    for(int j=0;j<o.size();j++)
		{
			cout<<o[j]<<endl;
			
			if(tonggou(o[j],s,0)==true)
			{
				k++;
			}
		}
		cout<<k<<endl;
	}
    return 0;
}

vector<string> sub_string(string t,string s)
{
	vector<string>l;
    for(int i=0;i<t.size()-s.size()+1;i++)//substr()函数代表寻找pos=i开头然后往后面找找到长度为j的字符串
	{
		
		string m=t.substr(i,s.size());
		cout<<m<<"p:"<<endl;
		l.push_back(m);
	}
	return l;
}
为什么我这个代码一个case都通不过,有人愿意帮我看看嘛

全部评论

(1) 回帖
加载中...
话题 回帖

本文相关内容

等你来战

查看全部

热门推荐