Problem#
給你兩個字串 s1 和 s2 還有一個 baseStr,其中 s1[i] 和 s2[i] 是 equivalent characters,今天給你 baseStr 問你如果用 equivalence relation 替換掉字母後,字典序最小的字串為何?
- Equivalence relation:
- Reflexivity:
'a' == 'a' - Symmetry:
'a' == 'b'$\rightarrow$'b' == 'a' - Transitivity:
'a' == 'b','b' == 'c'代表'a' == 'c'
- Reflexivity:
想法#
s1[i] == s2[i] 代表 s1[i] 和 s2[i] 是同一組的,維護分組的資料結構,同時遍歷 s1 和 s2 儲存組資訊,接著遍歷一次 baseStr 去找最小字典序的字元即可(利用剛剛維護的資料結構去查詢同組)
- 時間複雜度: $\mathcal{O}(26(n+m))$
n = s1.size()m = baseStr.size()26 = a ~ z
- 空間複雜度: $\mathcal{O}(26)$