389. Find the Difference
Posted Machelsky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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: 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的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 389. Find the Difference