原题链接:蓝桥杯历届试题-翻硬币
一道只要贪心就能解决的题,遍历所有硬币只要与当前硬币状态不同我就翻,最多翻n-1次。
代码如下:
sta = input().rstrip()
end = input().rstrip()
sta_nums = [] #模拟开始的硬币状态
end_nums = [] #模拟结束的硬币状态
ant = 0 #计数
for i in sta: #正面为一,反面为0
sta_nums.append(1) if i=='*' else sta_nums.append(0)
for j in end:
end_nums.append(1) if j=='*' else end_nums.append(0)
for i in range(len(sta_nums)-1):
if end_nums[i]!=sta_nums[i]: #只要与结束硬币状态的正反不同就翻硬币(贪心思想)
sta_nums[i],sta_nums[i+1] = int(not sta_nums[i]),int(not sta_nums[i+1])
ant += 1
print(ant)
9.9 分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复