标签:
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; } }
标签:
原文地址:http://www.cnblogs.com/Machelsky/p/5914971.html