这两行代码在程序中的工作

working of these two lines of code in the program

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

这是检查字符并将值保存在变量total中的条件。

total 变量将包含数组 str.

个唯一 个字符的数量

发生这种情况是因为您仅在尚未将角色标记为已访问时才增加计数 (total+=!used[str[i]-'a'])。如果你递增了它,你就在下一行 (used[str[i]-'a']=1) 中这样标记它,这样你就不会再计算它了。

符号str[i]-'a'用于将字符的ascii值从0移动到25(而不是97122) 这样你就可以在数组中保留一些 space.