原题链接:蓝桥杯历届试题-翻硬币
解题思路:
相邻的若干对硬币总共只有三种状态:
1.独立的一对相同硬币
2.相邻的两对相反硬币
3.两对相反硬币中间夹着n对相同硬币
分别对这三种情况进行处理即可
注意事项:
若不相同的硬币对数为奇数,则无法完成
参考代码:
# 精罗落泪....... start_array = input() end_array = input() i = 0 cnt = 0 while i < len(start_array): if start_array[i] == end_array[i]: # 独立的一对相同硬币,不予理会 i += 1 continue elif start_array[i+1] != end_array[i+1]: # 相邻的两对相反硬币,只需翻转一次 cnt += 1 i += 2 else: # 两对相反硬币中间夹着n对相同硬币,需翻转n+1次 i += 1 while i < len(start_array) and start_array[i] == end_array[i]: i += 1 cnt += 1 i += 1 cnt += 1 print(cnt)
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复