Gym 100989E题解
程序员文章站
2022-05-04 13:19:19
链接:http://codeforces.com/gym/100989/problem/E 给你两个字符串a和b,判断他们是否“相等”。 “相等”: 1.a与b是同一字符串 2.a与b长度相等,a与b只有一个字符不等且a的长度大于等于8 3.b比a少一个字符,b是a的子串且a的长度大于等于8 这三者 ......
链接:http://codeforces.com/gym/100989/problem/E
给你两个字符串a和b,判断他们是否“相等”。
“相等”:
1.a与b是同一字符串
2.a与b长度相等,a与b只有一个字符不等且a的长度大于等于8
3.b比a少一个字符,b是a的子串且a的长度大于等于8
这三者满足其一即可
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 int main() 5 { 6 char a[200],b[200]; 7 cin>>a>>b; 8 int len1=strlen(a),len2=strlen(b); 9 if(strcmp(a,b)==0)cout<<"yes"<<endl; 10 else 11 { 12 if(len2>len1)cout<<"no"<<endl; 13 else if(len1-len2>1)cout<<"no"<<endl; 14 else if(len1==len2) 15 { 16 int flag=0; 17 for(int i=0;i<len1;i++) 18 { 19 if(a[i]!=b[i]) 20 flag++; 21 if(flag>1)break; 22 } 23 if(flag==1&&len1>=8)cout<<"yes"<<endl; 24 else cout<<"no"<<endl; 25 } 26 else 27 { 28 int flag=0,i; 29 for(i=0;i<len2;i++) 30 { 31 if(a[i]!=b[i]) 32 { 33 flag++; 34 break; 35 } 36 } 37 for(int j=i;j<=len2;j++) 38 { 39 if(a[j+1]!=b[j]&&flag) 40 { 41 flag++; 42 break; 43 } 44 } 45 if(flag>1)cout<<"no"<<endl; 46 else if((flag<=1)&&len1>=8)cout<<"yes"<<endl; 47 else cout<<"no"<<endl; 48 } 49 } 50 return 0; 51 }
上一篇: 对象转换成JSON字符串