Leetcode 389:找不同(最詳細的解法!!!)
給定兩個字串 s 和 t,它們只包含小寫字母。
字串 t 由字串 s 隨機重排,然後在隨機位置新增一個字母。
請找出在 t 中被新增的字母。
示例:
輸入:
s = "abcd"
t = "abcde"
輸出:
e
解釋:
'e' 是那個被新增的字母。
解題思路
使用Leetcode 268:缺失數字(最詳細的解法!!!)中的方法可以輕鬆破解。相同元素通過xor
消除,最後剩下的就是被新增的元素。
class Solution:
def findTheDifference(self, s, t):
"""
:type s: str
:type t: str
:rtype: str
"""
result = 0
for ch in (s+t):
result ^= ord(ch)
return chr(result)
我將該問題的其他語言版本新增到了我的GitHub Leetcode
如有問題,希望大家指出!!!
相關推薦
Leetcode 389:找不同(最詳細的解法!!!)
給定兩個字串 s 和 t,它們只包含小寫字母。 字串 t 由字串 s 隨機重排,然後在隨機位置新增一個字母。 請找出在 t 中被新增的字母。 示例: 輸入: s = "abcd" t = "abcde" 輸出: e 解釋: 'e' 是那個被新增的字母。 解題思路
Leetcode 228:彙總區間(最詳細的解法!!!)
給定一個無重複元素的有序整數陣列,返回陣列區間範圍的彙總。 示例 1: 輸入: [0,1,2,4,5,7] 輸出: ["0->2","4->5","7"] 解釋: 0,1,2 可組成一個連續的區間; 4,5 可組成一個連續的區間。 示例 2: 輸入: [0,
Leetcode 268:缺失數字(最詳細的解法!!!)
給定一個包含 0, 1, 2, ..., n 中 n 個數的序列,找出 0 … n 中沒有出現在序列中的那個數。 示例 1: 輸入: [3,0,1] 輸出: 2 示例 2: 輸入: [9,6,4,2,3,5,7,0,1] 輸出: 8 說明: 你的演算法應具有線性時
Leetcode 289:生命遊戲(最詳細的解法!!!)
根據百度百科,生命遊戲,簡稱為生命,是英國數學家約翰·何頓·康威在1970年發明的細胞自動機。 給定一個包含 m × n 個格子的面板,每一個格子都可以看成是一個細胞。每個細胞具有一個初始狀態 live(1)即為活細胞, 或 dead(0)即為死細胞。每個細胞與其八個相鄰位置(水平,
Leetcode 55:跳躍遊戲(最詳細的解法!!!)
給定一個非負整數陣列,你最初位於陣列的第一個位置。 陣列中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最後一個位置。 示例 1: 輸入: [2,3,1,1,4] 輸出: true 解釋: 從位置 0 到 1 跳 1 步, 然後跳 3 步到達最後一個位置
Leetcode 90:子集 II(最詳細的解法!!!)
給定一個可能包含重複元素的整數陣列 nums,返回該陣列所有可能的子集(冪集)。 說明:解集不能包含重複的子集。 示例: 輸入: [1,2,2] 輸出: [ [2], [1], [
Leetcode 51:N皇后(最詳細的解法!!!)
n 皇后問題研究的是如何將 n 個皇后放置在 n×n 的棋盤上,並且使皇后彼此之間不能相互攻擊。 上圖為 8 皇后問題的一種解法。 給定一個整數 n,返回所有不同的 n 皇后問題的解決方案。 每一種解法包含一個明確的 n 皇后問題的棋子放置方案,該
Leetcode 343:整數拆分(最詳細的解法!!!)
給定一個正整數 n,將其拆分為至少兩個正整數的和,並使這些整數的乘積最大化。 返回你可以獲得的最大乘積。 示例 1: 輸入: 2 輸出: 1 解釋: 2 = 1 + 1, 1 × 1 = 1。 示例 2: 輸入: 10 輸出: 36 解釋: 10 = 3 +
Leetcode 337:打家劫舍 III(最詳細的解法!!!)
在上次打劫完一條街道之後和一圈房屋後,小偷又發現了一個新的可行竊的地區。這個地區只有一個入口,我們稱之為“根”。 除了“根”之外,每棟房子有且只有一個“父“房子與之相連。一番偵察之後,聰明的小偷意識到“這個地方的所有房屋的排列類似於一棵二叉樹”。 如果兩個直接相
Leetcode 377:組合總和 Ⅳ(最詳細的解法!!!)
給定一個由正整陣列成且不存在重複數字的陣列,找出和為給定目標正整數的組合的個數。 示例: nums = [1, 2, 3] target = 4 所有可能的組合為: (1, 1, 1, 1) (1,
Leetcode 139:單詞拆分(最詳細的解法!!!)
給定一個非空字串 s 和一個包含非空單詞列表的字典 wordDict,判定 s 是否可以被空格拆分為一個或多個在字典中出現的單詞。 說明: 拆分時可以重複使用字典中的單詞。 你可以假設字典中沒有重複的
Leetcode 494:目標和(最詳細的解法!!!)
給定一個非負整數陣列,a1, a2, …, an, 和一個目標數,S。現在你有兩個符號 + 和 -。對於陣列中的任意一個整數,你都可以從 + 或 -中選擇一個符號新增在前面。 返回可以使最終陣列和為目標
Leetcode 48:旋轉影象(最詳細的解法!!!)
給定一個 n × n 的二維矩陣表示一個影象。 將影象順時針旋轉 90 度。 說明: 你必須在原地旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要使用另一個矩陣來旋轉影象。 示例 1: 給定 ma
Leetcode 932:漂亮陣列(最詳細的解法!!!)
對於某些固定的 N,如果陣列 A 是整數 1, 2, ..., N 組成的排列,使得: 對於每個 i < j,都不存在 k 滿足 i < k < j 使得 A[k] * 2 = A[i
Leetcode 213:打家劫舍 II(最詳細的解法!!!)
你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都**圍成一圈,**這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個
Leetcode 72:編輯距離(超詳細的解法!!!)
給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 。 你可以對一個單詞進行如下三種操作: 插入一個字元 刪除一個字元 替換一個字元 示例 1: 輸入: word1 = "horse", wor
Leetcode 69:Sqrt(x)(超詳細的解法!!!)
實現 int sqrt(int x) 函式。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2 示例 2: 輸入: 8 輸出: 2 說明: 8 的平方根是 2.82
Leetcode 42:接雨水(超詳細的解法!!!)
給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。 上面是由陣列 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度圖,在這種情況下,可以接 6 個單位的雨水(藍色部分表示雨水)。 感謝 Marcos 貢
Leetcode 65:有效數字(超詳細的解法!!!)
驗證給定的字串是否為數字。 例如: "0" => true " 0.1 " => true "abc" => false "1 a" => false "2e10" => true 說明: 我們有意將問題陳述地比較模糊。在實現程式碼之前,你應當事先思
Leetcode 279:完全平方數(最詳細解決方案!!!)
給定正整數 n,找到若干個完全平方數(比如 1, 4, 9, 16, ...)使得它們的和等於 n。你需要讓組成和的完全平方數的個數最少。 示例 1: 輸入: n = 12 輸出: 3 解釋: 12 = 4 + 4 + 4. 示例 2: 輸入: n = 13