【LeetCode】389. 找不同(Java)

    科技2022-07-20  111

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

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

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

    提示:

    0 <= s.length <= 1000t.length == s.length + 1s 和 t 只包含小写字母

    解法一

    class Solution { public char findTheDifference(String s, String t) { char[] sCh = s.toCharArray(); char[] tCh = t.toCharArray(); //排序 Arrays.sort(sCh); Arrays.sort(tCh); //遍历比较 for (int i = 0; i < sCh.length; i++) { if (sCh[i] != tCh[i]) return tCh[i]; } //因为sCh比tCh少一位,如果遍历结束还没没返回,说明是tCh的最后一个字符 return tCh[tCh.length - 1]; } }

    解法二

    class Solution { public char findTheDifference(String s, String t) { int[] arr = new int[26]; //统计s字符串字符的个数 for (char c : s.toCharArray()) { arr[c - 97]++; } //遍历t字符串的所有字符,减去arr数组中的个数 for (char c : t.toCharArray()) { if (arr[c - 97] == 0) return c; else arr[c - 97]--; } return ' '; } }

    Processed: 0.008, SQL: 8