解法一:二進制運算題目描述:給定兩個字符串 s 和 t,它們只包含小寫字母。
字符串 t 由字符串 s 隨機重排,然后在隨機位置添加一個字母。
請找出在 t 中被添加得字母。
示例說明請見LeetCode自己。
近日:力扣(LeetCode)
鏈接:感謝分享leetcode-cn感謝原創(chuàng)分享者/problems/find-the-difference/
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)感謝請聯(lián)系自家授權(quán),非商業(yè)感謝請注明出處。
異或運算:如果a、b兩個值不相同,則異或結(jié)果為1。如果a、b兩個值相同,異或結(jié)果為0。 所以如果a、b是2個相同得數(shù),則異或得結(jié)果肯定是0。
具體處理過程如下:
public class LeetCode_380 { public static char findTheDifference(String s, String t) { if (s == null || s.length() == 0) { return t.charAt(0); } int x = 0; for (int i = 0; i < s.length(); i++) { x ^= s.charAt(i); x ^= t.charAt(i); } x ^= t.charAt(t.length() - 1); return (char) x; } public static void main(String[] args) { System.out.println(findTheDifference("abcd", "abcde")); }}
【每日寄語】 今天得成績是昨天得汗水,明天得成功還須今天得努力。