Leetcode 389. 找不同
这道题主要考察字符串的一些细节处理,加了详细的注释,方便日后复习,也希望能帮到其他小伙伴,如有错误,欢迎指正!
Java实现:
class Solution {
public char findTheDifference(String s, String t) {
int s_sum = 0, t_sum = 0;
for (int i = 0; i < s.length(); i++){
s_sum += s.charAt(i);
}
for (int j = 0; j < t.length(); j++){
t_sum += t.charAt(j);
}
// 比较简单的一种方法,就是分别统计两个字符串中所有字母的 ASCII 码值的总和,然后再相减,就是那个插入的字母的 ASCII 码值
// 我们再用(char)对该 ASCII 码值进行强转,就能得到这个字母
return (char) (t_sum - s_sum);
}
}
Python3实现:
class Solution:
def findTheDifference(self, s: str, t: str) -> str:
# 分别统计两个字符串,每个字母出现的次数,得到两个字典
# 然后两个字典相减,就能得到那个插入的字母
s_dict = collections.Counter(s)
t_dict = collections.Counter(t)
diff = list(t_dict - s_dict)
return diff[0]