算法2:判斷兩個字符串內容是否相同

詳細描述
判斷兩個字符串的內容是否相同,指的是兩個字符串中的字符是否完全一樣,順序可以不同(也可以稱之爲換位字符串)。比如字符串1爲”abc”,字符串2爲”cba”,則認爲這兩個字符串內容是一樣的,再比如字符串1爲”aba”,字符串2爲”abaa”,則認爲兩個字符串內容不同。因此,兩個字符串內容相同包含的意思就是:兩個字符串長度相同,並且字符串的字符完全一樣(順序可以不同)。

分析
在算法1中,我們曾經使用了一種定樁的方式來解決找出第一個非重複的字符,有了這個經驗之後,這個問題我們首先可以想到用類似的方式來處理,雖然表面上看起來沒有直接的關係,算法1是一個字符串,本算法是兩個字符串,但是仔細思索之後會發現兩者確實是相通的,只要稍微做一些變化,就能解決本問題。
我們用定樁法來進行簡單推導一下,假設有兩個字符串,字符串1爲”abc”,字符串2爲”cba”,我們同時對兩個字符串的每個字符進行遍歷,如果是字符串1中的字符在樁中找到,我們對樁的值進行加1操作,如果是字符串2中的字符在樁中找到,則對樁的值進行減1操作,如果兩個字符串的內容完全相同,最後樁的每一個值都應該爲0,如果有任何一個值不爲0,則說明兩個字符串的內容不一樣。
代碼實現

PHP和Python實現

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章