C++ 检查字符串是否包含特定的顺序字符
我尝试使用以下代码来检查字符串是否包含特定字符,但我想检查这些字符是否按照代码的顺序排列C++ 检查字符串是否包含特定的顺序字符,c++,C++,我尝试使用以下代码来检查字符串是否包含特定字符,但我想检查这些字符是否按照代码的顺序排列 string string1= "Amed"; string string2= "Anbhsmegfd"; std::string x(string1); if (x.find_first_not_of(string2) != std::string::npos) { std::cerr << "Error\n"; } 在string2中找到的string1 但是我需要输出将是err
string string1= "Amed";
string string2= "Anbhsmegfd";
std::string x(string1);
if (x.find_first_not_of(string2) != std::string::npos)
{
std::cerr << "Error\n";
}
在string2中找到的string1但是我需要输出将是
error
,因为e
出现在m
我怎样才能做到这一点呢?只需编写代码。这是psuedo代码,我将它留给您转换为c++
char* s = str2
foreach (char c in str1)
char *find = indexof(s, c)
if(!find)
error;
s = find
ie-查找第一个字符-如果找到,请将指针移动到找到该字符的位置并搜索下一个字符,否则失败是否需要此功能
string s1 = "Amed";
string s2 = "Aehkm";
size_t k = 0;
for (size_t i = 0; i < s2.size(); ++i)
if (s1[k] == s2[i]) {
k++;
if (k == s1.size()) {
cout << "found" << endl;
break;
}
}
string s1=“Amed”;
字符串s2=“Aehkm”;
尺寸k=0;
对于(size_t i=0;i cout Dynamic programming可以工作。或者在较小的字符串上逐字符递归回溯。实际上,string1不在后者的string2中。仅解决某些情况,如果string1=“Ahmed”和string2=“ehAmAhmsed”未找到,但string2按顺序包含string1!@AhmedElzeiny我刚刚尝试过,它说“找到”。(您可以每次以k
增量打印i
,以查看发生了什么。)
string s1 = "Amed";
string s2 = "Aehkm";
size_t k = 0;
for (size_t i = 0; i < s2.size(); ++i)
if (s1[k] == s2[i]) {
k++;
if (k == s1.size()) {
cout << "found" << endl;
break;
}
}