c
используется в качестве индекса массива.Так уж получилось, что в Юникоде (и ASCII) «нормальные» символы имеют десятичное основание 10 в диапазоне от 0 до 127 .Следовательно, целочисленное значение любой последовательности символов ASCII, которую вы предоставили бы программе, всегда будет в диапазоне от 0 до 127. (Конечно, вы все же можете передавать не Java-символы (Unicode) в Java, конечно, но в контекстеэтого примера, я думаю, они хотели, чтобы все было просто.) Это также имеет преимущество (потому что строка преобразуется в нижний регистр), давая вам отсортированный ответ в алфавитном порядке.
Массив count
хранитколичество раз, когда был найден отдельный символ (учитывая, что символ используется в качестве индекса).Строка count[c]++
увеличивает запись для символа c
.Если счет превышает единицу, он становится повторяющимся символом и, следовательно, не будет распечатан в конце.