題目:
判斷兩個字元串是否為變形詞
描述:
給定兩個字元串str1 和 str2, 如果兩個字元串中包含的字元的種類和數量相同,則稱這兩個為變形詞
舉例:
str1 = “123”; str2 = “321”; 傳回true
str1 = “123”; str2 = “223”; 傳回false
思路:
如果兩個字元串長度不同,那麼這兩個字元串不可能為變形詞
建立一個數組map[255],用來記錄每個字元出現的個數,而将字元在ascii表中的位置當作資料中的下标索引;
周遊其中一個字元串,記錄所有字元出現的個數, 累加出現的字元串個數map[i]++;
周遊第二個字元串,将遇到的字元在map數組中的計數累減map[i]–;
如果兩個字元串互為變形詞,那麼最後map資料中的計數應該全為0;而如果不是互為變形詞,那麼map中的計數肯定不全是0,有的可能大于0,有的少于0。
代碼實作:
下面這種寫法是合法格式: int map[100]={0}; map[‘a’]=2;