卖萌的弱渣

I am stupid, I am hungry.

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.

Example:

1
2
3
4
5
6
7
8
9
Input:
s = "abcd"
t = "abcde"

Output:
e

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

Solution

  • Java: 利用抑或
(Find-the-Difference.java) download
1
2
3
4
5
6
7
8
9
10
11
public class Solution {
    public char findTheDifference(String s, String t) {
        int n = t.length();
        char ret = t.charAt(n-1);
        for(int i = 0; i < n-1;i++){
            ret ^= t.charAt(i);
            ret ^= s.charAt(i);
        }
        return ret;
    }
}
  • Python: 排序
(find-the-difference.py) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution(object):
    def findTheDifference(self, s, t):
        """
        :type s: str
        :type t: str
        :rtype: str
        """
        if s == None:
            return t

        s = sorted(s)
        t = sorted(t)

        for i in range(len(s)):
            if t[i] != s[i]:
                return t[i]
        return t[-1]