Find the Difference

Share my LeetCode answer


Find the Difference

Given two strings s and t which consist of only lowercase letters.

String t is generated by random shuffling string s and then add one more letter at a random position.

Find the letter that was added in t.</br>

Example:

Input:
s = "abcd"
t = "abcde"</br>
Output:
e</br>
Explanation:
'e' is the letter that was added.

Code:


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

  • 常规的字符串类型的题目,使用数组作为字符表,存入出现次数;
  • 对于字符串s,出现元素则++,对于字符串t,出现元素则–;
  • 由于初始化字符串全零,所以当次数小于零时,则返回当前字符;
  • 字符类型的返回值,空的情况可以返回0。