389. Find the Difference

Problem:
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.
Analysis:

solution 1: use int[256] map, count s, subtract in t. 字符串的对比首先就要想到int[256] map.
solution 2: similar to single number, the added char appears only once, others twice.


class Solution {
    public char findTheDifference(String s, String t) {
        int n = t.length();
        char c = t.charAt(n - 1);
        for (int i = 0; i < n - 1; i++) {
            c ^= s.charAt(i);
            c ^= t.charAt(i);
        }
        return c;
    }
}

评论

此博客中的热门博文

663. Equal Tree Partition

776. Split BST

5. Longest Palindromic Substring