<h2><strong>收回</strong>:阿利斯泰尔的答案更好&;这个程序仍然不考虑从w开始</h2>
<p>没关系,我解决了。解决方案是向后迭代列表<em>。这是我的完整实现</p>
<pre class="lang-py prettyprint-override"><code>fin = open('beads.in', 'r')
lineList = [line.rstrip('\n') for line in fin]
fout = open('beads.out', 'w')
necklace = lineList[1]
length = int(lineList[0])
necklace *= 3
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"):
i += 1
firstStreak += 1
secondStreak = 0
while i < length and necklace[index + i] != bead:
i += 1
secondStreak += 1
maxes.append(firstStreak + secondStreak)
for index, bead in enumerate(reversed(necklace[length: length * 2])):
firstStreak = 0
i = 1
while i < length and (necklace[index + i] == bead or necklace[index + i] == "w"):
i += 1
firstStreak += 1
secondStreak = 0
while i < length and necklace[index + i] != bead:
i += 1
secondStreak += 1
maxes.append(firstStreak + secondStreak)
fout.write(str(max(maxes)) + '\n')
</code></pre>