课程题目 : 1003. 简单字符串匹配

题目:

Description

 

给定两个字符串S1和S2,要求判定S2是否能够被S1做循环移位得到的字符串包含。
说明:字符串S1和S2中不包含空格,每个字符串至少包含一个字符。
例如:给定S1=AABCD,S2=CDAA,则返回True;给定S1=ABCD,S2=ACBD,则返回False。
Input

 

第一行为整数N(0<N<1,000,000,000)
第二到N+1行是N组输入数据,每行包括两个字符串,字符串S1和字符串S2,其中字符串的长度不超过100。
Output

 

针对每个例子,如果S2能够被S1做循环移位得到的字符串包含,输出True,否则输出False。
每个输出结果为独立的一行。
Sample Input
2
AABCD CDAA
ABCD ACBD
Sample Output
True
False

题目很简单,主要是记录string类型里面find函数的使用

这里string里面的一个find函数的返回值是size_type,如果没找到的标志是npos,找到则返回s2在s1中的下标位置

 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main(){
 5     int n;
 6     cin>>n;
 7     while(n--){
 8         string s1,s2;
 9         string::size_type position;
10         cin>>s1>>s2;
11         s1=s1+s1;
12         position=s1.find(s2);
13         if(position==s1.npos)
14             cout<<"False
";
15         else
16             cout<<"True
";
17     }
18     return 0;
19 }
原文地址:https://www.cnblogs.com/jolin123/p/3348201.html