total+=!used[str[i]-'a'];
used[str[i]-'a']=1;
这是检查字符并将值保存在变量total中的条件。
答案 0 :(得分:2)
total
变量将包含数组str
中的唯一个字符。
之所以会这样,是因为只有在尚未将字符标记为已访问时,才增加计数(total+=!used[str[i]-'a']
)。如果增加它,则在下一行(used[str[i]-'a']=1
)中将其标记为这样,以便不再计数。
符号str[i]-'a'
用于将字符的ascii值从 0 更改为 25 (而不是 97 122 ),以便您可以在阵列中保留一些空间。