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 基本思路 ...