使用 Map 來紀錄每一個字元對應的 Soundex Code,並且用字元的方式來紀錄,這樣子可以把答案使用字串的方式加起來。Soundex Code 中沒有的字元就不需要宣告,這些字元在宣告 Map 時會自動預設為 0。
對收到字串的每一個字元做判斷,如果目前字元的 Soundex Code 不為 0,則要判斷這個字元是否為第一個 Soundex Code,可以在迴圈外面宣告一個布林值來確認,如果為第一個 Soundex Code,則將在迴圈外面宣告的字串 ans 變數 (預設為 “”) += Map[目前字元],並且還要在迴圈的外面宣告一個字元 last 代表上一個 Soundex Code,將 last 設為 Map[目前字元]。如果不是第一個 Soundex Code 則要判斷目前的 Soundex Code 是否與 last 一致,如果不一致的話就要將 ans += Map[目前字元],並且要將 last 設為新的 Map[目前字元]。
如果 Soundex Code 為 0,代表之後的要重新做判斷,所以要將 last 設為 ‘0’。