-1

下面是解决方案的外观。


输入 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";
    }
}
4

1 回答 1

0

也许这就是你想要的:

#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;
}

更新:至少它会产生与您的描述相同的结果。

于 2015-09-26T06:54:46.760 回答