隨筆-找出兩個字串中不相同的元素
阿新 • • 發佈:2018-12-18
題目:
給定兩個字串 s 和 t,它們只包含小寫字母。
字串 t 由字串 s 隨機重排,然後在隨機位置新增一個字母。
請找出在 t 中被新增的字母。
示例:
輸入:
s = “abcd”
t = “abcde”
輸出:
e
解釋:
‘e’ 是那個被新增的字母。
思路:好多人被是char型別束縛了,用的是兩個字串排序在進行比較的方法,其實char 也是由二進位制組成的,在兩個字串當中,只有一個元素是一個,別的元素都是兩兩相同,我們可以用異或,兩個相同的基本資料型別異或結果為0;這樣兩個字串異或,最後剩下的就是那個被新增的元素了;
class Solution { public char findTheDifference(String s, String t) { if(s.length()==0&&t.length()!=0){ //判斷是不是空串 return t.charAt(0); } char ch=s.charAt(0); int i=1; int j=0; while(i<s.length()||j<t.length()){ if(i<s.length()){ ch^=s.charAt(i); i++; } if(j<t.length()){ ch^=t.charAt(j); j++; } } return ch; } }