B2118 验证子串

题目描述

输入两个字符串,验证其中一个串是否为另一个串的子串。

输入格式

两行,每行一个字符串。

输出格式

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

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

否则,输出No substring

输入输出样例

输入 #1复制

abc dddncabca

输出 #1复制

abc is substring of dddncabca

输入 #2复制

aaa bbb

输出 #2复制

No substring

说明/提示

对于 100% 的数据,字符串长度在 30 以内。

代码

#include<bits/stdc++.h> using namespace std; int main(){ char s1[50],s2[50]; int n,m; cin>>s1; cin>>s2; n=strlen(s1); m=strlen(s2); int s=0; int f=0; if(m>n){ for(int i=0;i<=m-n;i++){ s=0; for(int j=0;j<n;j++){ if(s1[j]==s2[i+j]){ s++; } else{ break; } } if(s==n){ f=1; break; } } if(f==1){ cout<<s1<<" is substring of "<<s2; } else{ cout<<"No substring"; } } else{ for(int i=0;i<=n-m;i++){ s=0; for(int j=0;j<m;j++){ if(s1[i+j]==s2[j]){ s++; } else{ break; } } if(s==m){ f=1; break; } } if(f==1){ cout<<s2<<" is substring of "<<s1; } else{ cout<<"No substring"; } } return 0; }