Работа этих двух строк кода в программе

total+=!used[str[i]-'a'];
used[str[i]-'a']=1;

Это условие для проверки символов и сохранения значения в переменной total.

1 ответ

Решение

total переменная будет содержать количество уникальных символов в массиве str,

Это происходит потому, что вы увеличиваете счет (total+=!used[str[i]-'a']) только если вы еще не отметили персонажа как посетившего. Если вы увеличиваете его, вы отмечаете его как таковой в следующей строке (used[str[i]-'a']=1), чтобы вы не посчитали это снова.

Запись str[i]-'a' используется для сдвига значений ascii символов от 0 до 25 (вместо 97 до 122), чтобы вы могли сэкономить место в массиве.

Другие вопросы по тегам