其他分享
首页 > 其他分享> > 【LeetCode】389. 找不同

【LeetCode】389. 找不同

作者:互联网

给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。

思路:
1、创建数组对第一个字符串计数,对第二个字符串减数

class Solution {
        public char findTheDifference(String s, String t) {
            int counter[] = new int[26];
            for (char c:s.toCharArray()){
                counter[c-'a']++;
            }
            for(char c:t.toCharArray()){
                if(--counter[c-'a']<0){
                    return c;
                }
            }
            return 0;
        }
    }

参考:
链接:https://leetcode-cn.com/problems/find-the-difference/solution/yi-ju-hua-zhao-bu-tong-reduce-gao-qi-lai-eqok/

思路:使用异或^
相关的式子:p^p=0 p^0=p p^p=0
也就是说把s和t所有的字符异或起来剩下的就是多出来的字符

class Solution {
    public char findTheDifference(String s, String t) {
        char res = 0;
        for (char c: s.toCharArray()) {
            res ^= c;
        }
        for (char c: t.toCharArray()) {
            res ^= c;
        }
        return res;
    }
}

标签:return,String,res,char,toCharArray,不同,字符串,389,LeetCode
来源: https://blog.csdn.net/weixin_46632912/article/details/112093723