自学内容网 自学内容网

找不同算法

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

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

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

示例 1:

输入:s = "abcd", t = "abcde"
输出:"e"
解释:'e' 是那个被添加的字母。

示例 2:

输入:s = "", t = "y"
输出:"y"

提示:

  • 0 <= s.length <= 1000
  • t.length == s.length + 1
  • s 和 t 只包含小写字母
class Solution {
    public char findTheDifference(String s, String t) {
        char[] charS = s.toCharArray();
        char[] charT = t.toCharArray();
        Map<Character, Integer> mapS = new HashMap();
        Map<Character, Integer> mapT = new HashMap();
        for (char resultS : charS) {
            int countS = mapS.containsKey(resultS) ? mapS.get(resultS) : 1;
            mapS.put(resultS, countS + 1);
        }
        for (char resultT : charT) {
            int countT = mapT.containsKey(resultT) ? mapT.get(resultT) : 1;
            mapT.put(resultT, countT + 1);
            if (!s.contains(String.valueOf(resultT)) || countT + 1 > mapS.get(resultT)) {
                return resultT;
            }
        }
        return charT[0];
    }
}


原文地址:https://blog.csdn.net/linsa_pursuer/article/details/144106198

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!