您的位置:首页 > 其它

POJ-3302

2015-12-14 08:50 399 查看
题意理解:

求字符串S2或其反转的字符串S2‘ 是否为字符串S1的子串;

解题思路:

1. 借助递归分别将S1,S2分解为其子串进行比较;

2.利用string的find(),substring()方法;

解题代码:

#include<iostream>
#include<string>
using namespace std;

string reverseString(string s){
string result="";

for(int i=s.length()-1;i>=0;i--){
result+=s[i];
}

return result;
}

bool isSubString(string s1, string s2){
if(s2.length()==1){
if(s1.find(s2[0])>s1.length()){
return false;
}else{
return true;
}
}

int index=s1.find(s2[0]);
if(index>s1.length()){
return false;
}else{
return isSubString(s1.substr(index+1),s2.substr(1));
}
}

int main(int argc, char *argv[]){
int caseNum;
cin>>caseNum;

for(int i=0;i<caseNum;i++){
string s1,s2;
cin>>s1>>s2;

if(isSubString(s1,s2) || isSubString(s1,reverseString(s2))){
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: