解题思路:

    一、先划分大的框架,从整体看 分为length相同和不相同。

    二、lengthb不相同只有一种情况,那就是第1种情况。

    三、length相同分为三种情况,而这三种情况又分为(大小写相等,和大小写不等两种情况)(情况2,情况3)和完全不等于

        (即在长度相等的情况下只要存在有一个不等,而且不是大小写的关系)(情况4)。

    四、定义一个flag,判断每一种情况时给它赋值,最后输出。

  

     



注意事项:

    一定要理清逻辑再写代码。判断2 3种情况时要把fabs()写在后面。因为程序先判断前面的,第四种情况可能也满足fabs(a[i]-b[i])==32,eg:Ba 和bc;

参考代码:

#include<bits/stdc++.h>
using namespace std;
int flag;
string a,b;
int len;
int k;
int _check1(int len) {
	int i,j;
	for( i=0; i<len; i++) {
		if(a[i]!=b[i]&&fabs(a[i]-b[i])!=32) {
			k--;	//只要有一个不相等,就计数 -1
			//最后我只要判断小于0就满足第4种情况,等于0就是完全相等 
		}

		if(a[i]!=b[i] && fabs(a[i]-b[i])==32) {
			k++;// 如果满足条件3大小写不同的话,K应该等于len
		}
		/*if(a[i]==b[i]){ 
		  
			k+=2;//如果满足条件2 完全相等的话,k最后应该是len的两倍
		}
		*/

	}
	if(k==0)//如果没有不相等,则K=0
		return	flag = 2;
	if(k<0) 
	return flag =4;
	if(k>0) 
	return flag =3;

}
int main() {
	cin>>a>>b;
	int len1 = a.size();
	int len2 = b.size();
	if(len1 == len2) {
		_check1(len1);
		printf("%d",flag);
	}
	
else {
	flag=1;
	printf("%d",flag);
}
return 0;

}


点赞(0)
 

0.0分

3 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 3 条评论

1024 3年前 回复TA
这个题解是存在问题的,举个例子,只要字符串中对应位置完全不相同的对数与仅仅是大小写不同的对数相同。那么加一的次数和减一的次数就会相同,最终得到的结果就是两字符串完全相同。解决方案是只要同时满足字符串对应字符不相同并且不是因为大小写的缘故,那么直接return。
1024 3年前 回复TA
#include<bits/stdc++.h>
using namespace std;
    int flag=0,k=0;
    string a,b;
    int check(int length)
    {
        for(int i=0;i<length;i++)
        {
            if(a[i]!=b[i]&&fabs(a[i]-b[i])!=32)
            {
                flag=4;
                return 0;
            }
            if(a[i]==b[i])
            {
                k+=2;
            }
            else
            {
                if(k%2==0)
                {
                k=k+1;
                }
            }
          
        }
          if(k%2==0)
            {
                flag=2;
            }else{
灬荣丶 3年前 回复TA
起飞~