判斷字詞是否符合指定規律

分析題目:

  • 空白分隔的字詞應該要符合指定規律

思路是,是透過特定字元當作索引來建立索引表,比對字詞是否符合:

map.get(c).equals(strings[i])

不過這邊有個限制是,索引表內不能有一樣的字詞,例如:索引 a 已經表示 dog 那麼 b 就不能也表示 dog。此測資就會發生錯誤:

Input:"abba" "dog dog dog dog"
Output:true
Expected:false

對此要增加條件,檢查是否已經有重複的數值:

if (map.containsValue(strings[i])) return false;

後記

參考討論

依據不得重複數值特性,那麼表示完全一對一,不會有一對多的現象。順序一樣不一樣,數量就會不一樣,所以完全忽略順序。利用這個特性,我們分別比較這些數量:

len(set(k, v)) == len(set(len(k))) == len(set(v))