擅长:python、mysql、java
<p>我认为当你开始看“w”时,你只需要处理这个问题。我的解决方案是无论如何都要开始计数,并在循环中遇到下一个非w时决定它应该是什么</p>
<pre><code>necklace = "rwrwrwrwrwrwrwrwrwrwrwrwbwrwbwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwr"
length = len(necklace)
necklace *= 2
maxes = []
for index, bead in enumerate(necklace[0: length]):
firstStreak = 1
i = 1
while i < length and necklace[index + i] == bead or necklace[index + i] == "w" or bead == "w":
if (bead == "w") and (necklace[index + i] != "w") :
bead = necklace[index + i]
i += 1
firstStreak += 1
secondStreak = 0
while i < length and (necklace[index + i] != bead):
i += 1
secondStreak += 1
maxes.append(firstStreak + secondStreak)
print(max(maxes))
</code></pre>