题目:给定两个字符串 s
和 t
,它们只包含小写字母。字符串 t
由字符串 s
随机重排,然后在随机位置添加一个字母。请找出在 t
中被添加的字母。
一种错误思想,拿 t 中的字符一个一个和s中的字符匹配,如果没有匹配的,就是 t 中添加的那个字母。有一种情况没有考虑到例如
s 是 'a';t 是 'aa' 拿着 t 中的 两个a 和s中匹配都可以匹配上 故这种情况不行。
正确思想:
1、最巧妙的一种,把 s 和 t 中的所有字符ASCII码的值分别求和,两个和相减,即得到相差的是哪个字符,也就是 t 中添加的那个。
2、计数,记录每个字符的出现次数,s 和 t 中哪个字符的出现次数不同就是所找的字符
3、位运算
4、力扣上运行时间最短的是 将两个字符串 sort 然后比较哪个位置不同则 t 该位置的字符就是所找的字符