解题思路:
相邻的若干对硬币总共只有三种状态:
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 人评分
简单的a+b (C语言代码)浏览:511 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:630 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:550 |
WU-整除问题 (C++代码)浏览:614 |
简单的a+b (C语言代码)浏览:511 |
循环入门练习5 (C语言代码)浏览:861 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1482 |
字符逆序 (C语言代码)浏览:628 |
交换Easy (C语言代码)浏览:773 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:515 |