竞赛
考级
T2 午枫的卡片交换 题目大意 给定两个字符串 s,ts,ts,t ,问能否交换 sss 的相邻两个字符最多一次,使得 s=ts=ts=t 。 解题思路 枚举模拟每个相邻位置的交换,判断是否存在一个位置使得 s=ts=ts=t 即可。 参考代码
> 总共分三步:累加,存入和条件是否满足 > > > 1.累加\large{1.累加}1.累加 > > 设一个累加和 sumsumsum ,使每次 sssi 和 ttti 不相同时, sum→sum***um\rightarrow sum***um→sum+1 > > > 2.存入\large{2.存入}2.存入 > > 设一个临时数组 bbb 和一个临时变量 b1b1b1 ,b1→0b1\rightarrow 0b1→0 ,每次 sssi 和 ttti 不相同时, bbbb1→i\rightarrow i→i , b1→b1+1b1\rightarrow b1+1b1→b1+1 > > > 3.条件是否满足\large{3.条件是否满足}3.条件是否满足 > > 根据题意,我们可以知道通过最多一次交换相邻的两个卡片,使 sss 的每一个字母与 ttt 的都相同 > > 所以,当满足以下两个条件之一就输出Yes,否则输出No > > > > > sum=2b1−b0=1s(b(0))=t(b(1))s(b(1))=t(b(0))(1)sum=2 \tag{1} \\b_1-b_0=1 \\s(b(0))=t(b(1))\\s(b(1))=t(b(0)) sum=2b1 −b0 =1s(b(0))=t(b(1))s(b(1))=t(b(0))(1) > > > > > sum=0(2)sum=0\tag{2} sum=0(2) 所以,AC代码奉上: 看到这了,给我点个赞呗
提交答案之后,这里将显示提交结果~