LeetCode - 389. Find the Difference
链接
题意
给定字符串s和t,t的生成是根据s中字母的乱序再向其中任意一个位置插入一个任意字母。找出这个字母。
思路
其实思路和之前一道题一样,只是将数字换成了字母。详见(http://www.cnblogs.com/zyoung/p/6587433.html)
另外,s+t时,那些重复的字母数肯定是2的倍数,所以用异或可行。
代码
Java:
public class Solution {
public char findTheDifference(String s, String t) {
s = s + t;
char[] arr = s.toCharArray();
for (int i = 1; i < arr.length; i++) {
arr[0] ^= arr[i];
}
return arr[0];
}
}
效率
Your runtime beats 42.56% of java submissions.