NOI/1.7编程基础之字符串/18:验证子串
一.提议总结
本题考点:本题考点在于在一个里寻找另一个的过程
二.解题思路
1.先比较字符串的大小,大的里含有小的,小的里必然没有大的
2.排查大字符串中有没有小的里面的第一个
3.再分别往后对比,如果小字符串和大字符串的一部分一样,输出“a是b的字串
三.代码注释
以下为代码:
include<bits/stdc++.h>
using namespace std;
string a;
string b;
int main(){
int ans=0,flag=0;
cin>>a>>b;
if(a.size()>=b.size()){
for(int i=0;i<a.size();i++){
if(a[i]b[0]){
ans++;
for(int l=1;l<b.size();l++){
if(a[i+l]b[l]&&l!=a.size()){
ans++;
}
}
if(ansb.size()){
cout<<b<<" is substring of "<<a;
flag=1;
}
ans=0;
}
}
}
else if(b.size()>a.size()){
for(int i=0;i<b.size();i++){
if(b[i]a[0]){
ans++;
for(int l=1;l<a.size();l++){
if(b[i+l]a[l]&&l!=b.size()){
ans++;
}
}
if(ansa.size()){
cout<<a<<" is substring of "<<b;
flag=1;
}
ans=0;
}
}
}
if(flag==0){
cout<<"No substring";
}
return 0;
}
四.上课错点
没理解题意,导致代码逻辑出差错