演算法65----字串
阿新 • • 發佈:2018-11-27
題目:
- 判斷兩個字串是否互為變形詞
- 字串中數字子串的求和
- 去掉字串中連續出現k個0的子串
- 判斷兩個字串是否互為旋轉詞
- 將整數字符串轉成整數值
- 替換字串中連續出現的指定字串
- 字串的統計字串
- 判斷字元陣列中是否所有的字元都只出現過一次
- 在有序但含有空的陣列中查詢字串
- 字串的調整與替換
- 翻轉字串
- 陣列中兩個字串的最小距離
- 新增最少字元使字串整體都是迴文字串
- 括號字串的有效性和最長有效長度
- 公式字串求值
一、判斷兩個字串是否互為變形詞
題目:給定兩個字串str1和str2,如果str1和str2中出現的字元種類一樣且每種字元出現的次數也一樣,則str1和str2互為變形詞。
請實現函式判斷兩個字串是否互為變形詞。
舉例:
str1="123", str2="231", 返回true;
str1="123", str2="2331",返回false。
思路:
1. 首先比較兩個字串的長度,長度不同肯定是false。
2. 如果長度相同,新建一個字典,用以儲存每個字元出現次數。
3. 遍歷str1,在str1 中出現一次就加1,遍歷str2,在str2 中出現一次就減1,最後遍歷完str2沒有出現負值,就返回true。
程式碼:
from collections import Counter def IsDeformation(str1,str2): if not str1 or not str2 or len(str1) != len(str2): return False countstr1= Counter(str1) for s2 in str2: if s2 in countstr1: countstr1[s2] -= 1 if countstr1[s2] < 0: return False else: return False return True str1 = '1234' str2 = '2313' IsDeformation(str1,str2)