一本通-1140:验证子串

【输入】

输入两个字符串, 每个字符串占一行,长度不超过200且不含空格。

【输出】

若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2)

否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1)

否则,输出 No substring。

【输入样例】

abc
dddncabca

【输出样例】

abc is substring of dddncabca

思路:

判断谁是谁的子串,有可能第一个是第二个的子串,也有可能第二个是第一个的字串,所以为了简单我们用长串查短串即可,如果s1的长度短做一下交换,保证s1是长串,之后看s1中能否找到s2。

#include<iostream>
#include<string>
using namespace std;
int main() {
	string s1, s2;
	getline(cin, s1);
	getline(cin, s2);

	if (s1.length() < s2.length()) {
		swap(s1, s2);
	}

	if (s1.find(s2) != -1) {
		cout << s2 << " is substring of " << s1;
	}
	else cout << "No substring";
	return 0;
}