问题描述
因此,我目前正在学习代码战,并且已经解决了一个多小时的问题……似乎一个简单的任务使我永远无法解决。无论如何,这是我受到打击的片段。 我想为字符串字符数组返回索引列表,但前提是该字符为大写。这对于不同的字母可以正常工作,但是当出现两个相同字符时,它们将返回相同的索引。例如返回的“ abCdeC”索引为[2],[2]
def solution(s):
arry = list(s)
for x in arry:
if x.isupper():
print(arry.index(x))
solution('breakCamelBamp')
print(' spacer ')
solution('breakCamelCamp')
解决方法
正如其他人所指出的那样,问题在于index
总是返回第一次出现的索引。相反,请尝试使用当前索引进行迭代:
def solution(s):
arry = list(s)
for i,x in enumerate(arry):
if x.isupper():
print(i)
,
索引返回第一个匹配项。您可以改为使用计数器:
def solution(s):
arry = list(s)
count_array = []
count = 0
for x in arry:
if x.isupper():
count_array.append(count)
count += 1
print(count_array)
solution('breakCamelBamp')
print(' spacer ')
solution('breakCamelCamp')