Я пытаюсь напечатать «наименьший» символ в строке, где символ меньше, если он ближе к началу алфавита, чем другой символ, и это первая позиция индекса. Я должен использовать только 1 цикл, чтобы определить индекс символа, и мне не разрешено использовать min, max, index, find, ord, chr или lists. Например:Как напечатать «наименьший» символ в строке, используя только один цикл?
leastChar("yRrcDefxBqubSlyjYelskd")
должен давать:
The least char is 'B' and occurs at position 8.
В настоящее время у меня есть:
def leastChar(inputString):
lowerString = inputString.lower()
print(lowerString)
indexLength = (len(lowerString) - 1)
print(indexLength)
index = 0
for i in range(indexLength):
if lowerString[i] < lowerString[i+1]:
index = i
print("The least char is '{0}' and occurs at position {1}".format(inputString[index], index))
Который возвращает:
leastChar("yRrcDefxBqubSlyjYelskd")
yrrcdefxbqubslyjyelskd
21
The least char is 'l' and occurs at position 18
Я пробовал несколько вариантов, но даже usi ng более 1 петли, я нахожу, что получаю последовательно неправильные ответы на разных позициях. Кроме того, в случае, если это имеет значение, lessChar ('blAh') вернет 'A' в позицию 2, как это предполагалось.
Ближайший я пришел к тому, что кажется правильным, мне кажется, когда я положил еще один цикл внутри исходной для петли в надежде, что я мог бы увеличивать эту переменную для сравнения «я» к нему, такие как:
for i in range(indexLength):
for j in range(indexLength):
if lowerString[i] < lowerString[j]:
И сделайте что-нибудь с этим, но я не смог заставить его работать. Спасибо за помощь.
[«Простейший случай алгоритма выбора - поиск минимального (или максимального) элемента путем итерации по списку, отслеживание минимального рабочего минимума - минимального до сих пор (или максимального)» (https : //en.wikipedia.org/wiki/Selection_algorithm) – melpomene
@melpomene Спасибо за ссылку. – mwierda