首页 > 代码库 > 389. Find the Difference

389. 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:

Input:s = "abcd"t = "abcde"Output:eExplanation:‘e‘ is the letter that was added.

思路:sort一下char array,然后从头比较是不是char一样,如果都一样。那就是t的最后一个字母。
public class Solution {    public char findTheDifference(String s, String t) {        char[] schar=s.toCharArray();        char[] tchar=t.toCharArray();        Arrays.sort(schar);        Arrays.sort(tchar);                for(int i=0;i<schar.length;i++)        {            if(schar[i]!=tchar[i])            {                return tchar[i];            }        }        return tchar[tchar.length-1];    }}

Solution2: 用xor X^X=0; X^0=X

两个string全部char xor之后最后肯定剩X^0=X就是我们想要的。

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

 

389. Find the Difference