Вам нужна только одна переменная - просто следите за символом, который выигрывает до этой точки.
Когда вы просматриваете ввод CompUter Fun
, вы сначала видите C
.Так как его первый персонаж, его победитель до сих пор.Тогда вы видите o
.o
идет после C
, так что теперь он победитель;Ваша переменная теперь содержит o
.И так далее.Вы заменяете сохраненный символ только в том случае, если новый выигрывает, поэтому вы получите первый в случае связей.
(При сравнении необходимо выполнять сравнение без учета регистра; простой способ сделать этоэто tolower
по обе стороны от сравнения).
input winner
C C # first letter always wins
o o # o > c
m o
p p # p > o
U U # U > o
t U
e U
r U
U # space
F U
u U # u == U, so !(u > U), so U stays winner
n U
дает окончательного победителя, U.
Это эффективный общий алгоритм для нахождения максимума (или минимума, путемобратное сравнение) неупорядоченного ввода.Его также можно расширить, чтобы отслеживать 2-е (и т. Д.) Место, хотя в какой-то момент сортировка становится более эффективной, особенно в таких данных, где вы можете использовать радикальные сортировки O (n).