判断两个字符串是否是变形词
生活随笔
收集整理的這篇文章主要介紹了
判断两个字符串是否是变形词
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題:?給定兩個字符串str1和str2,如果str1和str2中出現的字符種類一樣并且每種字符出現的次數也一樣,那么str1與str2互為變形詞。請實現函數判斷兩個字符串是否互為變形詞。
舉例:
str1 = “123”,str2 = “231”,返回True?
str1 = “123”,str2 = “2331”,返回False
基本思路:
如果兩個字符串的長度不相同,直接返回False
假設出現的字符的編碼值在0~255之間,即是ASCII編碼,那么先申請一個長度為256的整型數組array,arr[a] = b,表示字符a出現的次數是b,依次遍歷字符串str1,統計每種字符出現的數量,相當于統計每種字符的詞頻。
遍歷字符串str2,每遍歷到一個字符都在array數組中把詞頻減1,如果減少之后的值小于0,直接返回False。如果遍歷完str2,array中的值也沒有成為負數,則返回True。
為什么只考慮詞頻最后是否有負數?因為如果最后有的詞頻為正數,說明str1的長度一定大于str2,這種情況在步驟一的時候就已經剔除了。
如果字符的范圍不在0~255,則可以利用哈希表來代替數組。
?
?
總結
以上是生活随笔為你收集整理的判断两个字符串是否是变形词的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拼接所有字符串产生字典顺序最小的大写字符
- 下一篇: 判断两个字符串是否为旋转词