题目
给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例
输入:s = “abcd”, t = “abcde”
输出:“e”
解释:‘e’ 是那个被添加的字母。
输入:s = “”, t = “y”
输出:“y”
输入:s = “a”, t = “aa”
输出:“a”
输入:s = “ae”, t = “aea”
输出:“a”
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-the-difference
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
想法
counter~
实现
方法1:python
class Solution:
def findTheDifference(self, s: str, t: str) -> str:
c1=collections.Counter(s)
c2=collections.Counter(t)
for i,v in enumerate(t):
if c2[v] != c1[v]:
return v
方法2:java
class Solution {
public char findTheDifference(String s, String t) {
int sum_s = 0, sum_t = 0;
// 计算s的ASCII码和
for (int i = 0; i < s.length(); i++) {
sum_s += s.charAt(i);
}
// 计算t的ASCII码和
for (int i = 0; i < t.length(); i++) {
sum_t += t.charAt(i);
}
return (char)(sum_t - sum_s);
}
}