def isPerm(s1, s2):
if len(s1) != len(s2):
return False
a = dict()
for char in s1:
a[char] = True
for char2 in s2:
if a.get(char2) == True:
continue
else: return False
return True
這是我寫的函數,用來查找兩個字符串是否相互排列。 但我不知道爲什麼這個工程(我得到正確的輸出),當我通過它的理由。據我所知,字典就像一個哈希表。這個Python Dict代碼爲什麼工作?
例如,如果我有s1和s2作爲「ab」和「aab」,這應該給我False,這個函數的作用。現在,在第一個for循環中,當我訪問s1中的每個char時,我有一個帶有「a」和「b」映射爲True的字典。
當我去第二個循環,我檢查「a」的字典值,它是真的,所以我繼續。在第二個角色中,我再次得到一個「a」,這是真實的,在第三次迭代中,「b」也給了我真實的答案。所以,函數應該給我真實的,但它給了我錯誤。我很困惑,爲什麼它的工作!
想想'如果len(S1)= LEN(S2):' – thefourtheye 2014-10-01 05:19:28
我認爲這將失敗,'isPerm( 'AAB', 'ABB')' – inspectorG4dget 2014-10-01 05:20:23