Ниже показано, как должно выглядеть решение.
Введите Y: 239847239
Введите X: 847
X является подстрокой Y
Введите Y: 239847239
Введите X: 3923
X является подпоследовательностью Y
Введите Y: 239847239
Введите X: 489
X не является ни подстрокой, ни подпоследовательностью Y
и ниже моя грубая попытка сделать код:
int main()
{
cout << "Enter Y: ";
vector <int> Y;
int Y_number;
cin >> Y_number;
cout << "Enter X: ";
vector <int> X;
cin >> X;
if (Y > X)
{
for(int i = 0; i < Y.size(); i++)
{
Y.push_back(Y_number);
if (Y.size(i) == X.size(i))
{
}
}
}
else
{
cout << "X is neither substring nor subsequence of Y";
}
}
Может быть, это то, что вы хотите:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string Y, X, YY;
cout << "Enter Y: ";
cin >> Y;
cout << "Enter X: ";
cin >> X;
YY = Y + Y;
if (std::string::npos != Y.find(X)) {
cout << "X is substring of Y" << endl;
} else if (std::string::npos != YY.find(X)) {
cout << "X is subsequence of Y" << endl;
} else {
cout << "X is neither substring nor subsequence of Y" << endl;
}
return 0;
}
ОБНОВЛЕНИЕ: по крайней мере, оно дает те же результаты, что и ваше описание.
Других решений пока нет …