Leetcode 290 - Word Pattern

題目

Problem#

給你一個字串 pattern 和字串 s 問你 patterns 是不是 full match

1
"abba" -> "dog cat cat dog"
  • 1 <= pattern.length <= 300
  • 1 <= s.length <= 3000

想法#

維護兩個資料結構紀錄 s 映射到 pattern (A) 以及 pattern 映射到 s (B)
把輸入用空白切開,掃過一遍,如果 word 沒出現在 A 中且沒出現在 B 中(代表新的word) 則紀錄。如果沒出現在 A 中但有出現在 B 中,則代表這次的word跟之前紀錄的不同,代表不可能符合 pattern 返回 false。如果 word 有出現在 A 中,則判斷 A 存的字元是否等於 pattern[i]

  • 時間複雜度: $\mathcal{O}(n\log{n})$
  • 空間複雜度: $\mathcal{O}(n)$

AC Code#

心得#

這題測資輸入很鳥= =