[leetcode]python3 演算法攻略-有效的字母異位詞
給定兩個字串 s 和 t ,編寫一個函式來判斷 t 是否是 s 的一個字母異位詞。
方案一:s.count()比較各元素的個數
class Solution:
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
return set(s) == set(t) and all(s.count(i) == t.count(i) for i in set(s))
方案二:利用Counter快速統計各元素的個數,但效率上比方案一低
class Solution:
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
from collections import Counter
return Counter(s) == Counter(t)
相關推薦
[leetcode]python3 演算法攻略-有效的字母異位詞
給定兩個字串 s 和 t ,編寫一個函式來判斷 t 是否是 s 的一個字母異位詞。方案一:s.count()比較各元素的個數class Solution: def isAnagram(self, s, t): """ :type s:
[leetcode]python3 演算法攻略-有效的括號
給定一個只包括 '(',')','{','}','[',']' 的字串,判斷字串是否有效。 有效字串需滿足: 左括號必須用相同型別的右括號閉合。 左括號必須以正確的順序閉合。 注意空字串可被認為是有效字串。 class Solution(object):
[leetcode]python3 演算法攻略-二叉搜尋樹中第K小的元素
給定一個二叉搜尋樹,編寫一個函式 kthSmallest 來查詢其中第 k 個最小的元素。 說明: 你可以假設 k 總是有效的,1 ≤ k ≤ 二叉搜尋樹元素個數。 方案一:中序排序後,返回第K-1個值 class Solution(object): def k
[leetcode]python3 演算法攻略-驗證二叉搜尋樹
給定一個二叉樹,判斷其是否是一個有效的二叉搜尋樹。一個二叉搜尋樹具有如下特徵:節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。方案一:構建一個輔助函式,把當前節點的值,傳遞給子節點,在子節點中進行比較class
[leetcode]python3 演算法攻略-爬樓梯
假設你正在爬樓梯。需要 n 步你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 方案一:每一步都是前兩步和前一步的和 class Solution(object): def climbSt
[leetcode]python3 演算法攻略-反轉整數
給定一個 32 位有符號整數,將整數中的數字進行反轉。方案一:匿名函式s用於確定x的正負性。class Solution: def reverse(self, x): """ :type x: int :rtype: i
[leetcode]python3 演算法攻略-打家劫舍
你是一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的
[leetcode]python3 演算法攻略-合併兩個有序陣列
給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為一個有序陣列。說明:初始化 nums1 和 nums2 的元素數量分別為 m 和 n。你可以假設 nums1 有足夠的空間(空間大小大於或等於 m + n)來儲存 n
[leetcode]python3 演算法攻略-只出現一次的數字
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。方案一:去重求和,乘2減原def singleNumber(nums): """ :type nums: List[int] :rtype: int
[leetcode]python3 演算法攻略-旋轉影象
給定一個 n × n 的二維矩陣表示一個影象。將影象順時針旋轉 90 度。方案一:先按X軸對稱旋轉, 再用zip()解壓,最後用list重組。class Solution: def rotate(self, matrix): """ :
[leetcode]python3 演算法攻略-兩個陣列的交集 II
給定兩個陣列,寫一個方法來計算它們的交集。方案一:利用collections.Counter的&運算,一步到位,找到 最小次數 的相同元素。def intersect(nums1, nums2): """ :type nums1: List[int]
[leetcode]python3 演算法攻略-加一
給定一個非負整數組成的非空陣列,在該數的基礎上加一,返回一個新的陣列。最高位數字存放在陣列的首位, 陣列中每個元素只儲存一個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。方案一:利用數學公式求原陣列的int形式def plusOne(digits): ""
[leetcode]python3 演算法攻略-兩數之和
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。方案一:利用字典,儲存檢查過的元素及其索引。def twoSum(nums, target): """ :type nums: List[
Leetcode-有效字母異位詞
242.有效字母的異位詞 給定兩個字串 s 和 t ,編寫一個函式來判斷 t 是否是 s 的一個字母異位詞。 示例 1: 輸入: s = “anagram”, t = “nagaram” 輸出: true 示例 2: 輸入: s = “rat”, t = “car” 輸出
LeetCode演算法題49:字母異位詞分組解析
給定一個字串陣列,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字串。 示例: 輸入: ["eat", "tea", "tan", "ate", "nat", "bat"], 輸出: [ ["ate","eat","tea"], ["nat","tan"],
LeetCode242有效字母異位詞&&LeetCode438 找到所有字串中的字母異位詞
【242】有效的字母異位詞 給定兩個字串 s 和 t ,編寫一個函式來判斷 t 是否是 s 的一個字母異位詞。 示例 1: 輸入: s = "anagram", t = "nagaram" 輸出:
LeetCode242有效字母異位詞&&LeetCode438 找到所有字串中的字母異位詞
【242】有效的字母異位詞 給定兩個字串 s 和 t ,編寫一個函式來判斷 t 是否是 s 的一個字母異位詞。 示例 1: 輸入: s = "anagram", t = "nagaram" 輸出: true 示例 2: 輸入: s = "rat", t = "ca
LeetCode 438. 找到字串中所有字母異位詞
給定一個字串 s 和一個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。 字串只包含小寫英文字母,並且字串 s 和 p 的長度都不超過 20100。 說明: 字母異位詞指字母相同,但排列不同的字串。 不考慮答案輸出的順序。 示例
Leetcode 438:找到字串中所有字母異位詞(最詳細解決方案!!!)
給定一個字串 s 和一個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。 字串只包含小寫英文字母,並且字串 s 和 p 的長度都不超過 20100。 說明: 字母異位詞指字母相同,但排列不同的字串。 不考慮答案輸出的順序
C++ Leetcode初級演算法之有效的字母異位詞
給定兩個字串 s 和 t ,編寫一個函式來判斷 t 是否是 s 的一個字母異位詞。 示例 1: 輸入: s = “anagram”, t = “nagaram” 輸出: true 示例 2: 輸入: s = “rat”, t = “car” 輸出: false 說明: 你可以假設