解题思路:
相邻的若干对硬币总共只有三种状态:
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语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:552 |
C语言训练-求函数值 (C语言代码)浏览:931 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:633 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:608 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:518 |
简单的a+b (C语言代码)浏览:523 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1457 |
1035 题解浏览:778 |
复数求和 (C语言代码)浏览:917 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:527 |