判斷兩個字串是否是變位詞

2021-06-23 05:06:39 字數 693 閱讀 8982

1、題目

在英語中,如果兩個單詞中出現的字母相同,並且每個字母出現的次數也相同,那麼這兩個單詞互為變位詞(anagram),例如,silent與listen,evil與live等互為變位詞。請完成乙個函式,判斷輸入的兩個字串是否互為變位詞。

2、解題思路

我們可以用建立乙個陣列實現簡單的雜湊表,用來統計字串中每個字元出現的次數。當掃瞄第乙個字串中的每個字元時,為雜湊表對應的項的值增加1,。接下來掃瞄第二個字串,掃瞄到每個字元時,為雜湊表對應的項的值減去1,。如果掃瞄完第二個字串後,雜湊表中所有的值都是0,則這兩個字串就互為變位詞。

3.參考**

//求字串的大小,不包括結束符

int strlength(char* str)

return sum;

}//互為變位詞的判斷

bool isanagram(char* str1, char* str2)

; //掃瞄第乙個字串,記錄出現字母的次數+1

for(;*str1!='\0';++str1)

//掃瞄第二個字串,記錄出現字母的次數-1

for(;*str2!='\0';++str2)

//最後判斷雜湊表中元素是否都等於0

for(int i=0;i<26;i++) }

return true;

}

演算法 判斷兩個字串是否是變位詞

題目 判斷兩個字串是否是變位詞 分析 所謂變位詞是指的連個字串組成的字元是相同的,但是字元的位置是可以不同的,例如 qwerte和eetrwq這兩個字串就是 變位詞,如果對空間的要求不高則可以建立乙個256大小的陣列分別對映到ascii的每乙個字元,對前乙個字串遍歷在每個字元出 現加1,後面字串中遍...

158 兩個字串是變位詞

容易 兩個字串是變位詞 檢視執行結果 寫出乙個函式anagram s,t 去判斷兩個字串是否是顛倒字母順序構成的 您在真實的面試中是否遇到過這個題?yes 樣例給出 s abcd t dcab 返回true public class solution param s the first string...

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

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