题解 1453: 蓝桥杯历届试题-翻硬币

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

1453: 蓝桥杯历届试题-翻硬币(c++)

解题思路:在有解的情况下,初始状态和目标状态中不一样的位置个数一定是偶数,所以不一样的位置是成对出现的,要将初始状态变为目标状态,就应该把不一样的位置交换,要操作步数最少,就应该把相邻的交换(因为这样最近),这对操作步数就为两个位置的差(可以存储在数组里用偶数下标的数减去奇数下标的数),

python简单易懂解法

解题思路:可以在两个硬币之间想象出一个开关,控制它们的状态,如果硬币状态与目标不符,就按下开关,以此类推参考代码:start=list(str(input()))aim=list(str(input()))res=0n=len(start)defturn(i):ifstart[i]=='*&#

翻硬币(狠狠的贪)

###*贪心:每个硬币最多翻一次,多翻没有意义,所以每次遇到不一样的就开始翻,再次遇到不一样的停止就行了,题目保证有解,所以不用特判。*######参考代码```cpp#includeusingnamespacestd;#definelllonglongconstintN=1e5+5;stringa,

历届试题-翻硬币

从最左侧开始遍历,如果该位置硬币状态与目标不同,就翻动该位置和该位置后面的两枚硬币。因为题目说了有解,所以遍历到倒数第二枚的时候,所有硬币状态就与目标相同了。这个方法也有点贪心的思路,每次追求当前位置状态与目标状态一致。#includeusingnamespacestd;

随便写写,记录一下

```pythondefturn_the_coin(s1,s2):new_s1=list(s1)new_s2=list(s2)change_function=lambdax:'*'ifx=='o'else'o'count=0j=0whilej