2015-09-26 83 views
-2

下面是该解决方案的外观。整数模式


输入Y:X 239847239
进入:3923
X为Y

输入序列239847239
输入X:847
X为Y的子

输入Y Y:239847239
输入X:489
X既不是子字符串也不是子Ÿ

的序列

以下是我做的代码原油尝试:

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"; 
    } 
} 
+0

请格式正确 – manetsus

+0

这里有一堆东西,你甚至没有描述一个具体的问题(这也是为什么这个问题可能被关闭)。但是,这里有一些建议:首先,通过简单地使用函数,从两个属性的测试中分离输入。一个函数'bool is_substring(string const&s,string const&sub)'和另外一个'bool is_subsequence(string const&s,string const&sub)',我会留给你。将这些分离出来意味着你现在有三个(两个函数加上连接他们的胶水代码)较小的问题,你可以分别解决这些问题。 –

回答

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

更新:它至少产生相同结果作为你的描述。