389. Find the Difference(找不同)
题目:
给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入: s = "abcd" t = "abcde" 输出: e 解释: 'e' 是那个被添加的字母。
思路:
这题的方法挺多的,可以排序之后遍历查找,也可以哈希存储之后找到数值不同的存储位,最后还是选了统计字符串的int值的和,二者的差就是多的那个字母的int值,再次转换就行了。(此思路来自评论,真是大佬思路)
代码:
1 public static char findTheDifference(String s, String t) 2 { 3 char ch1 [] = s.toCharArray(); 4 char ch2 [] = t.toCharArray(); 5 int sum = 0; 6 for(int i = 0;i < ch1.length;i++) 7 { 8 sum = sum + (int)ch1[i]; 9 } 10 for(int i = 0;i < ch2.length;i++) 11 { 12 sum = sum - (int)ch2[i]; 13 } 14 sum = Math.abs(sum); 15 char c = (char)sum; 16 return c; 17 18 }