變位詞判斷問題

2021-10-05 19:16:52 字數 995 閱讀 1364

heart & earth    python & typhon 寫乙個bool函式判斷兩個詞是否為變位詞

#解法1:逐字檢查

!由於在python中字串其中字元無法改變,先將單詞賦值到列表中

解法1執行時間數量級為o(n^2)

def anagram1kenn(s1, s2):

alist = list(s1)

blist = list(s2)

if len(alist) != len(blist):

return false

if alist == blist:

return false

for i in alist:

flag1 = false

for n, j in enumerate(blist):

if (i == j) and (flag1 is false):

blist[n] = none

flag1 = true

if flag1:

pass

else:

return false

return true

#解法2:排序比較

將兩個字串都按照字母進行排序後比較

解法2主導過程為排序,數量級為o(n^2)或o(n logn)

def anagram2kenn(s1, s2):

alist = list(s1)

blist = list(s2)

if len(alist) != len(blist):

return false

if alist == blist:

return false

alist.sort()

blist.sort()

if alist == blist:

return true

else:

return false

變位詞判斷 python

python資料結構與演算法分析 第二版 寫乙個bool函式,以兩個詞為引數,返回這兩個詞是否為變位詞。假設參與判斷的兩個詞僅由小寫字母組成,且長度相等如 abcd和cdab user bin env python coding utf 8 方案1 清點法 時間複雜度為平方 defanagramso...

變位詞問題

問題描述 給定乙個英語詞典,找出其中的所有變位詞集合。例如,pots stop 和 tops 互為變位詞,因為每乙個單詞都可以通過改變其他單詞中的字母的順序來得到。問題解析 變位詞具有相同的長度,相同的字元,唯一的區別就是這些相同的字元按照不同的順序排列成不同的字串而已。如果有一種方法唯一標識這些相...

Python實現變位詞判斷

題目要求 如果乙個字串是 另乙個字串的重新排列組合,那麼這兩個字串互為變位詞。比如,heart 與 earth 互為變位 詞,mary 與 army 也互為變位詞。輸入格式 第一行輸入第乙個字串,第二行輸入第二個字串。輸出格式 輸出 yes 表示是互換詞,輸出 no 表示不是互換詞。輸入樣例1 在這...