力扣(LeetCode)389. 找不同

给定两个字符串 s 和 t,它们只包含小写字母。

字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。

请找出在 t 中被添加的字母。

示例:

输入:
s = "abcd"
t = "abcde"

输出:
e

解释:
'e' 是那个被添加的字母。

思路 1.先将字符串排序,从小到大,然后逐一比较

这种情况和1001个数,每个数字1~1000,有一个重复数字一样。可以使用异或法 或者作差法

参考链接 https://www.cnblogs.com/lick468/p/10641855.html

java版

class Solution {
    public char findTheDifference(String s, String t) {
        char[] cs = s.toCharArray();
        char[] ct = t.toCharArray();
        Arrays.sort(cs);
        Arrays.sort(ct);
        for(int i=0;i<cs.length;i++) {
            if(cs[i]!=ct[i]){
                return ct[i];  
            }
        }
        return ct[ct.length-1];
    }
}

运行结果

猜你喜欢

转载自www.cnblogs.com/lick468/p/10671415.html