Сравните 2 строки с порядком
Я хочу получить две строки(s1,s2) от пользователя и проверить, существует ли s1 в s2.
Я написал код ниже. он находит строки, но его не волнует порядок букв.
как я могу изменить его так что например
s1="abcd" s2="ooabzzzzzzcd"
он должен сказать "да", и он это делает.
s1="aczzzzzzzzbd"
он должен сказать нет но это не так
кроме того, я хочу, чтобы это было так, если буква используется дважды, она не путает порядок, например
s1="mammid" s2="ammizzzzd"
моя программа скажет да в этом состоянии
ПС. Я использовал s3 и поставил "x" в первую очередь, чтобы поместить строку, которую я получаю от сравнения, в другую строку.Я поставил "x" в первую часть s1 в конце концов, чтобы не было никаких проблем
#include <iostream> #include <string> using namespace std; int main() { std::string s1; std::string s2; std::string s3="x "; int x,y=0,i,cow; std::getline(std::cin, s1); std::getline(std::cin, s2); for ( cow = 0; cow < s2.size(); cow++) { for( i=cow;i<s2.size();i++){ if (s1[cow] == s2[i]){ s3=s3+s2[i]; cout<<s3<<endl; break; } } } //the problem is with the part on top s1="x "+s1; if (s1 == s3) std::cout << "YES"; if (s1 != s3) std::cout << "NO"; return 0; }
Что я уже пробовал:
Я перепробовал все, что знал, но ничего не вышло.Я действительно застрял. Я был бы очень благодарен за любую помощь.