total+=!used[str[i]-'a'];
used[str[i]-'a']=1;
这是检查字符并将值保存在变量总计中的条件。
total
变量将包含数组中唯一字符的数量str
。
发生这种情况是因为仅当您尚未将字符标记为已访问时,您才会增加计数(total+=!used[str[i]-'a']
(。如果将其递增,则在下一行(used[str[i]-'a']=1
(中将其标记为这样,这样您就不会再次计算它。
表示法str[i]-'a'
用于将字符的 ascii 值从0移动到25(而不是97到122(,以便您可以在数组中留出一些空间。