判斷兩字串是否互為變形詞Python版

2021-08-10 05:57:09 字數 895 閱讀 6452

python版**如下,我自己手寫:

def

is_deformation

(str1, str2):

if str1 is

none

or str2 is

none

or len(str1) != len(str2):

return

false

i, map = 0, [0]

while i <= 256:

i += 1

for i in range(0, len(str1)):

map[ord(str1[i])] += 1

for i in range(0, len(str2)):

if map[ord(str2[i])] == 0:

return

false

return

true

解題思路

1、首先判斷字串長度是否一致,然後遍歷str1,str2,假使字元數量為ascii字元256個。一旦map中出現-1,返回報錯。最後不需要再次遍歷map中是否為全0,直接返回 true。

2、如果字元型別大大多於256,要採用雜湊表

3、時間複雜度為兩次遍歷 str1,所以為 o(len(str1)),空間複雜度,申請了乙個整形變數 i,乙個map陣列,所以空間複雜度為 o(len(map))。

體會

1、python寫演算法感覺不如c好,python裡自帶的 列表資料型別不方便初始化空陣列,非得來乙個迴圈才能解決問題。增加了時間複雜度。

2、python的陣列就是個鍊錶,而非陣列。靈活的鍊錶結構,可以在此基礎上構建樹結構。

判斷兩個字串是否互為變形詞

題目 給定兩個字串str1和str2,如果str1和str2中出現的字元種類一樣且每種字元出現的次數也一樣,則str1和str2互為變形詞。請實現函式判斷兩個字串是否互為變形詞。舉例 str1 123 str2 231 返回true str1 123 str2 2331 返回false。難度 inc...

判斷兩個字串是否互為變形詞

給定兩個字串s1,s2,如果s1,s2 現的字元種類一樣且每種字元出現的次數一樣,則s1,s2互為變形詞。判斷s1,s2是否為變形詞。如遍歷s1,統計每個字元個數,遍歷s2,每個字元,s1字元個數統計對應字元 1,若減到負數,說明個數不匹配,返回false。遍歷完成則返回true from coll...

判斷兩個字串是否互為變形詞

題目 給定兩個字串str1和str2,如果str1和str2 現的字元種類一樣且每種字元出現的次數也一樣,那麼str1與str2互為變形詞。請實現函式判斷兩個字串是否互為變形詞。是變形詞返回true,不是變形詞返回false。舉例 str1 123 str2 231 返回true。str1 123 ...