关于#c++#的问题:问题遇到的现象和发生背景

问题遇到的现象和发生背景

img

运行结果及报错内容

编译超时

我的解答思路和尝试过的方法

搜索

我想要达到的结果

通过


#include<bits/stdc++.h>

using namespace std;

string s;

string s2;

int main()
{
    cin>>s;
    
    cin>>s2;
    
    char ch=s[0];
    
    for(int i=0;i<s.size();i++)
    {
        int bo2=-1;
        
        if(s2[i]==ch)
        {
            for(int j=0;j<s2.size();j++)
            {
                if(s[j]!=s2[j+i])
                {
                    bo2=1;
                    
                    break;
                }
                else
                {
                    bo2=0;
                }
            }
            
            if(bo2==0)
            {
                cout<<"yes";
                
                return 0;
            }
        }
    }
    
    cout<<"no";
    
    return 0;
}

双循环检索,从主串的第一个字符开始与子串匹配,如果完全匹配则OK,否则从主串的下一个字符开始继续比较

#include <iostream>
using namespace std;
int main()
{
    char s1[1000],s2[1000];
    cin>>s1>>s2;
    int i=0,j=0,k=0;
    while(s1[i] != '\0')
    {
        j=0;
        k = i;
        while(s1[k] != '\0' && s2[j] != '\0')
        {
            if(s1[k] != s2[j])
                break;
            k++;
            j++;
        }
        if(s2[j] == '\0')
            break;
        i++;
    }
    if(s1[i] == '\0')
        cout<<"no";
    else
        cout<<"yes";

    return 0;
}

@cq_zry