Возможно, у вас возникла странная проблема с вашим компилятором Python вашего провайдера или, возможно, поскольку это страница с веб-приложением для тестирования, запуска и проверки упражнений Python, ваш код работает не совсем так, как вы видите его в Интернетеpage.
Это может быть заметно, если вы сравните свой код со стековой трассировкой, которая имеет дополнительные вызовы, и даже аргументы для вашей функции не кажутся стандартными формальными аргументами, но * args (неаргумент переменной длины ключевого слова) аргумент.
трассировка стека для IndexError для вашего кода (например, если бы строковый аргумент был пустым, был бы):
Traceback (most recent call last):
File "main.py", line 11, in <module>
minSubstringWithAllChars("abe", "")
File "main.py", line 9, in minSubstringWithAllChars
print listS[0]
IndexError: list index out of range
В любом случае, работает с python 2.7.13 ясно показывает отсутствие проблем с вашим кодом:
def minSubstringWithAllChars(s):
nuS = str(s)
listS = list(nuS)
print("working with string: " + nuS)
print("Len of s: " + str(len(nuS)))
print("Len of listS: " + str(len(listS)))
print("\n")
for i in range(len(listS)):
print("Checking position: " + str(i) + " of String (" + nuS + "): " + listS[i])
print("\nAdditional access to listS via index 0: ")
print listS[0]
print("Start\n")
minSubstringWithAllChars("adobecodebanc")
print("\nEnd")
Вы можете видеть, что это работает:
Start
working with string: adobecodebanc
Len of s: 13
Len of listS: 13
Checking position: 0 of String (adobecodebanc): a
Checking position: 1 of String (adobecodebanc): d
Checking position: 2 of String (adobecodebanc): o
Checking position: 3 of String (adobecodebanc): b
Checking position: 4 of String (adobecodebanc): e
Checking position: 5 of String (adobecodebanc): c
Checking position: 6 of String (adobecodebanc): o
Checking position: 7 of String (adobecodebanc): d
Checking position: 8 of String (adobecodebanc): e
Checking position: 9 of String (adobecodebanc): b
Checking position: 10 of String (adobecodebanc): a
Checking position: 11 of String (adobecodebanc): n
Checking position: 12 of String (adobecodebanc): c
Additional access to listS via index 0:
a
End
Другое дело, что вам не нужно использовать индексы для итерации вашей строкисимволы (или разбить вашу строку на массив символов с помощью list ()).Вы можете просто ярлык с этим:
for i in nuS:
print i