Пользователь вводит слово, посчитать количество уникальных букв в этом слове. (Повторяющиеся считаем за одну, в слове окно - 3 (три) уникальные буквы - окн). Если записать слово в массив char, а потом сравнить каждый символ строки с элементом массива и посчитать повторяющиеся символы. Не знаю в правильном ли направлении я мыслю вообще и если в правильном, то как это реализовать.
Anonymous #3211366
10 уровень
Никак не могу выполнить это задание, подскажите, пожалуйста.
Обсуждается
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
11 апреля 2023, 10:31
Извращенцы тебе задачи ставят... ну тогда можно так сделать:
Хитрость здесь в массиве булей в котором индекс соответствует значению примитива char. Так если тебе буква встретилась и ты ее еще не встречал - в соответствующий индекс ставится true, а counter увеличивается на единицу. Потому для каждого char ты можешь проверить булево значение в массиве по индексу и узнать встречал ты его или нет.
0
Anonymous #3211366
13 апреля 2023, 10:21
Спасибо за участие и подсказку. В итоге я реализовал это вот так:
Scanner console = new Scanner(System.in);
System.out.print("Введите слово: ");
String str = console.nextLine().toLowerCase();
int count = 0;
char[] array = str.toCharArray();
for (int i = 0; i < str.length(); i++) {
for (int j = i + 1; j < str.length(); j++) {
if (array[i] == array[j]) {
count++;
break;
}
}
}
System.out.println("Количество уникальных букв в слове " + "\"" + str + "\"" + " - " + (str.length() - count));
0
Алексей
11 апреля 2023, 10:27
что можно использовать?
тут по-разному можно подойти к решению этой задачи. накидай хоть как-нибудь свой вариант, дальше будем править его.
0
Anonymous #3211366
13 апреля 2023, 10:22
Спасибо за участие, я реализовал это в итоге так:
Scanner console = new Scanner(System.in);
System.out.print("Введите слово: ");
String str = console.nextLine().toLowerCase();
int count = 0;
char[] array = str.toCharArray();
for (int i = 0; i < str.length(); i++) {
for (int j = i + 1; j < str.length(); j++) {
if (array[i] == array[j]) {
count++;
break;
}
}
}
System.out.println("Количество уникальных букв в слове " + "\"" + str + "\"" + " - " + (str.length() - count));
0
Anonymous #3211366
11 апреля 2023, 08:20
Нужно решить без Set, но спасибо за подсказку
0
Денис Enterprise Java Developer
11 апреля 2023, 08:09
Используй Set и не морочь себе голову.
0