1. 程式人生 > >隨筆-找出兩個字串中不相同的元素

隨筆-找出兩個字串中不相同的元素

題目:

給定兩個字串 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;
    }
}