一道只要贪心就能解决的题,遍历所有硬币只要与当前硬币状态不同我就翻,最多翻n-1次。

代码如下:

  1. sta = input().rstrip()
  2. end = input().rstrip()
  3. sta_nums = [] #模拟开始的硬币状态
  4. end_nums = [] #模拟结束的硬币状态
  5. ant = 0 #计数
  6. for i in sta: #正面为一,反面为0
  7. sta_nums.append(1) if i=='*' else sta_nums.append(0)
  8. for j in end:
  9. end_nums.append(1) if j=='*' else end_nums.append(0)
  10. for i in range(len(sta_nums)-1):
  11. if end_nums[i]!=sta_nums[i]: #只要与结束硬币状态的正反不同就翻硬币(贪心思想)
  12. sta_nums[i],sta_nums[i+1] = int(not sta_nums[i]),int(not sta_nums[i+1])
  13. ant += 1
  14. print(ant)
点赞(0)
 

9.9 分

1 人评分

 

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论