大一小白的第一篇博客,都是基于C语言完成的。

作为一道上古蓝桥杯省赛B组题,这道题的难度还是很简单的(或者说我思考的角度比较简单)
通过观察案例不难发现可以将问题转化为“两个改变的字符间有几个没改变的字符+1”
举个栗子:
***oo**
*o**o**
可以发现改变的2个字符中间只有1个,所以输出的是1+1=2
值得注意的是,如果有多段字符组合,需要将他们相加
如:
***oo** **********
*o**o** o****o****
改变的字符有(1+1)+(4+1)=7
附上我的代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<stdbool.h>
//我个人的习惯:头文件全部都整上去
int main()
{
int sum=0,i=0;//sum用于计数
bool tmp=0;//tmp是关键,用于判断两个字符是否发生变化,bool类型不常用,可以积累一下
char s1[1000]={'\0'};
char s2[1000]={'\0'};
scanf("%s",&s1);
scanf("%s",&s2);
for(;i<strlen(s1);i++)
{
if(s1[i]!=s2[i])
{
tmp=!tmp;//判断改变字符的头和尾
}
if(tmp==1)
{
sum++;
}
}
printf("%d",sum);
return 0;
}
附上我自己的一些小积累:
开字符数组时记得将字符数组初始化为\0
用bool类型可以更好的实现判断,不过其实也可以用两个if语句来实现判断、
对于头文件跟string函数的使用需要留意,别把c++和java的一些语法搞混了(在写strlen时还写成了length.s1)
文章介绍了大一学生使用C语言解决蓝桥杯省赛B组的一道简单题目,该题目涉及字符串的比较和字符计数。通过分析,问题转化为计算两个变化字符间的不变字符数量。作者提供了代码实现,并分享了编程技巧,如使用bool变量优化判断以及初始化字符数组。

被折叠的 条评论
为什么被折叠?



