天天看點

字元串之(1)變形詞

題目:

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

描述:

給定兩個字元串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;