Python 连接和断开(AtCoder大竞赛039_A)

Python 连接和断开(AtCoder大竞赛039_A),python,python-3.x,Python,Python 3.x,我正在努力解决这项任务 给出了一个字符串S。设T是S的K个副本的串联。我们可以重复执行以下操作:在T中选择一个字符,并用另一个字符替换它。求出满足以下条件所需的最小操作数:T中的任意两个相邻字符是不同的 输入来自以下格式的标准输入: S K 打印所需的最小操作数 下面是我编写的代码。 我已经把这个问题分成5个案例 i) S是一个字母 ii)S是两个字母,它们是相同的 iii)S是两个字母,它们是不同的 iv)S超过两个字母,且首字母和末字母不同 v) S是两个以上的字母,第一个和最后一个字母是

我正在努力解决这项任务

给出了一个字符串S。设T是S的K个副本的串联。我们可以重复执行以下操作:在T中选择一个字符,并用另一个字符替换它。求出满足以下条件所需的最小操作数:T中的任意两个相邻字符是不同的

输入来自以下格式的标准输入:

S
K
打印所需的最小操作数

下面是我编写的代码。 我已经把这个问题分成5个案例

i) S是一个字母

ii)S是两个字母,它们是相同的

iii)S是两个字母,它们是不同的

iv)S超过两个字母,且首字母和末字母不同

v) S是两个以上的字母,第一个和最后一个字母是相同的

S=input()
K=int(输入()
L=len(S)
总和=0
x=1
如果L==1:#i)
打印(K//2)
elif L==2和S[0]==S[1]:#ii)
印刷品(K)
elif L==2:#iii)
打印(0)
elif S[0]!=S[-1]:#四)
对于范围(0,L-1)内的i:
如果S[i]==S[i+1]:
x+=1
其他:
总和+=(x//2)*K
x=1
总和+=(x//2)*K
打印(总和)
其他:#五)
对于范围(0,L-1)内的i:
如果S[i]==S[i+1]:
x+=1
其他:
总和+=(x//2)
打破
y=x
x=1
对于范围(y,L-1)内的i:
如果S[i]==S[i+1]:
x+=1
其他:
总和+=(x//2)*K
x=1
总和+=(x//2)
和+=((x+y)//2)*(K-1)
打印(总和)

我的代码在15个测试用例中有2个失败。我不知道我工作的哪一部分导致了这个问题。有人能指出代码的哪一部分有问题吗?谢谢大家!

嗨!你能解释一下哪些测试成功,哪些测试失败吗?@JW。不幸的是,AtCoder并没有向用户显示每个特定的测试用例是什么。它只是告诉我测试用例1和2失败了,其余的都还可以。那么,哪两个是测试用例1和2?