給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。
示例 1:
輸入: s = "anagram", t = "nagaram"
輸出: true
示例 2:
輸入: s = "rat", t = "car"
輸出: false
class
solution
:def
isanagram
(self, s:
str, t:
str)
->
bool
:# 1. 雜湊 set
iflen
(s)!=
len(t)
:return
false
for i in
set(s)
:if s.count(i)
!= t.count(i)
:return
false
return
true
# 2. 雜湊 dict
iflen
(s)!=
len(t)
:return
false
dit =
for i in s:
if i in dit:
dit[i]+=1
else
: dit[i]=1
for i in t:
if i in dit:
dit[i]-=1
else
:return
false
for i in dit:
if dit[i]!=0
:return
false
return
true
# 3. python 特性
return
sorted
(s)==
sorted
(t)
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
class
solution
:def
twosum
(self, nums: list[
int]
, target:
int)
-> list[
int]
:# 1. 遍歷就完事了
for i in
range
(len
(nums)):
for j in
range
(i+1
,len
(nums)):
if nums[i]
+ nums[j]
== target:
return
[i,j]
# 2. 雜湊
ans_map =
dict()
for i in
range
(len
(nums)):
want = target - nums[i]
if want in ans_map:
return
[ans_map[want]
, i]
ans_map[nums[i]
]= i
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。
示例:
輸入: ["eat", "tea", "tan", "ate", "nat", "bat"]
輸出:[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
說明:
class
solution
:def
groupanagrams
(self, strs: list[
str])-
> list[list[
str]]:
res =
dic =
for s in strs:
keys =
"".join(
sorted
(s))
if keys not
in dic:
dic[keys]
=[s]
else
: dic[keys]
return
list
(dic.values(
))
集合和對映 Set and Map
集合是具有某種相似特性的事物的全體。它的重要特點是其中的資料元素無序且不重複,這也就是判斷是否使用該容器的依據。利用我之前的樹的定義和實現中的bst.go函式來呼叫而實現的 package arr type set struct 利用二分搜尋樹來實現結合的curd 新增元素到集合中 func set...
雜湊表 設計雜湊對映
不使用任何內建的雜湊表庫設計乙個雜湊對映 具體地說,你的設計應該包含以下的功能 示例 myhashmap hashmap new myhashmap hashmap.put 1,1 hashmap.put 2,2 hashmap.get 1 返回 1 hashmap.get 3 返回 1 未找到 h...
C STL Map對映和Set集合
map 對映 可以理解為下標可以不為int型別的高階陣列 include mapa 是字串到數字的對映 應用 給英文本串,求星期幾 include include include using namespace std mapday int main set 集合 與數學上的集合意義相同 相同元素記...