gpt4 book ai didi

c++ - 检查2个字符串中是否有公共(public)子字符串c++

转载 作者:太空狗 更新时间:2023-10-29 21:16:51 25 4
gpt4 key购买 nike

我已经做了一个解决方案,但我需要一个优化的解决方案。任务是:

  1. 读取两个字符串
  2. 获取第一个字符串的每个子字符串并在第二个字符串中找到它们
  3. 如果存在,打印“yes”,否则打印“no”

我已经做出的解决方案:

int check(string A, string B)
{
string s3;
int flag=0 ,len1,len2,k=0;
s3[0]='\0';
cin>>A>>B;
len1=A.length();
len2=B.length();

for(int i=0;i<len1;i++)
{
k=len1-i;

for(int j=1;j<k;j++ )
{
s3=A.substr(i,j);

size_t found=B.find(s3);

if(found!=string::npos)
{
flag=1;
return flag;
}

}
}
}

最佳答案

将第一个字符串的所有字符放入一个哈希集(unordered_set)中,然后遍历第二个字符串的字符并检查它们是否存在于哈希集中。如果是,则存在公共(public)子串(长度至少为 1),否则不存在公共(public)子串。

关于c++ - 检查2个字符串中是否有公共(public)子字符串c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34391991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com