Работа этих двух строк кода в программе
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), чтобы вы могли сэкономить место в массиве.