Как посчитать количество разных букв в массиве строк?

Пользователь вводит слово в массив строк:
char userWord[50];
 scanf("%s", userWord);


Нужно с помощью циклов посчитать количество разных букв в этом слове.
  • Вопрос задан
  • 459 просмотров
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Можно считать, например самые левые вхождения каждого символа. Для этого пройдитесь по массиву циклом, а внутри вторым циклом проверьте, а есть ли такой же символ левее данной позиции. Если вы такого повторения в цикле не нашли, то надо прибавить 1 к ответу.

Второй вариант - отсортировать символы. Там уже проще подсчитать все символы - это 1 + сколько разных соседей в отсортированном массиве. Это быстрее, если использовать быструю сортировку.

Ну или самый быстрый способ - в массиве на 256 счетчиков подсчитайте, сколько раз каждый символ встречается. Потом подсчитайте, сколько там ненулевых элементов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект