码迷,mamicode.com
首页 > 其他好文 > 详细

389. Find the Difference

时间:2016-09-28 07:36:37      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

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.

思路: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

标签:

原文地址:http://www.cnblogs.com/Machelsky/p/5914971.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!