Вам никогда не казалось, что букв в алфавите — слишком много? Компьютеры вполне обходятся двумя, а у нас их целых 33. Непозволительная избыточность! Тем не менее, приходится мириться с реальностью и решать соответствующие задачи. Вот одна из них: введите с клавиатуры 10 строчек и подсчитайте в них количество различных букв.
Количество букв
- 12
Недоступна
Комментарии (581)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Иван
около 11 часов назад
я объединил все строки в одну, перевел ее в массив, а дальше сравнил символы из алфавита с символами из моего массива, увеличивая и обнуляя переменную счетчика, параллельно выводя на экран. Показалось не сильно сложно)
0
Евгений N
15 мая, 11:18
в общем 2 принципиальных подхода: или а) перебираем введенные символы и увеличиваем соответствующий счетчик алфавита (как в решении jr или ниже было через HashMap)
или б) перебираем алфавит и для каждой буквы считаем её во всех введенных строках. просмотрел пару страниц комментариев, такого варианта не нашел: не перебирать строки посимвольно, а сразу посчитать число вхождений, например через replace (число вхождений = длина до замены - длина после замены):
пс как-то замена 1 символа типа Char на пусто кривовато выглядит s.replace( ""+x,""); 😰

0
Егор Комаров
27 марта, 13:27
Проще простого, всего-то два дня мучений
+2
Анатолий
12 ноября 2021, 07:00
господа, массив строк ArrayList<String> list можно сложить просто в одну строку и спокойно работать с ней, перебирая ее через charAt , и последовательно сравнивая с символами из List<Character> alphabet.
+4
Борис
4 ноября 2021, 12:43
Решил через два for. Счётчик объявил (int count) до тела цикла(for(int i = 0; i < alphabet.size(); i++)). Пол дня потратил на "отладку". Может кому-то это поможет
0
Saturn
2 ноября 2021, 13:26
Так как сообразительность сегодня у меня хромает, то пошел по простому, но длинному пути расписывая все подряд, главное что решил. Хотя "правильное решение" и решения других заслуживают внимания больше, чем мои 80 строчек кода не учитывая того что дано по умолчанию 😅
0
Алексей
28 октября 2021, 18:57
В решении java rush хитро придумано.
Решил напролом через три цикла for.
Первый цикл перебирает буквы алфавита.
Второй цикл - строки.
Третий через charAt сравнивает букву алфавита с буквой в строке.
Если буквы равны, то увеличивает счетчик.
После выхода из второго цикла выводим букву из алфавита + счетчик.
Обнуляем счетчик.
+4
Mark
3 ноября 2021, 17:04
Пришел в итоге к такому же решению☝🙃
0
Денис
12 декабря 2021, 21:05
Аналогично решил.
0
Андрей
21 января, 08:14
3тий цикл писал почти день, жесть
0
Евгений N
15 мая, 09:14
сделал также. мне мое решение понравилось 😁😋
а чего в решении jr хитрого? код в 2 раза больше, используют встроенную функцию indexOf а мы честно сами ищем 😁![]()

0
Дима
18 октября 2021, 08:57
У кого " Ё "в конце списка, при использовании TreeMap либо вообще хаос при HashMap, ловите подсказку от Сергея, которую он написал под одной из задач в разделе "Помощь" :
"LinkedHashMap - в каком порядке добавляем, в таком и отобразит"
+2
Эльдар
9 октября 2021, 22:51
139 попыток
+3
Anna Makarova
23 февраля, 01:49
Вы чемпион! А почему бы не воспользоватья зеленой кнопкой Run?
0
Кирилл Козлов
2 октября 2021, 18:17
Создаём список букв
создаём массив int[33]
пробегаемся по списку букв (foreach)
если буква совпадает с буквой из алфавита, то по индексу (alpabet.indexOf()) то
инкрементируем нужную переменную из массива
var[alpabet.indexOf()]++;
потом просто выводим наш alphabet и массив интов нужным образом.
0