Question

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.

Example:

Input:
s = "abcd"
t = "abcde"

Output:
e

Explanation:
'e' is the letter that was added.

Solution

class Solution {
    public char findTheDifference(String s, String t) {
        int[] charMap = new int[26];
        Arrays.fill(charMap, 0);

        for(char c: s.toCharArray()) {
            charMap[c - 'a']++;
        }

        for(char c: t.toCharArray()) {
            if(--charMap[c - 'a'] < 0)
                return c;
        }

        return 0;
    }
}