把兩個字串每個字元都重新對映到乙個新的字元組成乙個新的字串,再比較新字串是否相等就知道原字串是否同構。
注意:這題字串不止有小寫字母。
所以對映這個ascii集合,開個128大小的陣列。
對映思路:
待對映的下標從0-128(ascii碼範圍)
掃瞄兩個字串,遇到乙個新字元給他分配乙個新的下標,否則就用已經有的對映關係。
比如egg開始對映
第一步:e新字元,分配下標0
第二步:g新字元,分配下標1
第三步:g已經存在對映關係直接取值用
egg->0 1 1(單個整數表示乙個ascii碼值,具體查表看,不影響做題!!!)
add開始對映:
第一步:a新字元,分配下標0
第二步:d新字元,分配下標1
第三步:d已經存在對映關係直接取值用
add->0 1 1
比較一下0 1 1 == 0 1 1
所以同構的
class
solution
for(
int i =
0;i < l2;i++
)return sp == tp;}}
;
leetcode 205 同構字串
問題 給定兩個字串 s 和 t,判斷它們是否是同構的。如果 s 中的字元可以被替換得到 t 那麼這兩個字串是同構的。所有出現的字元都必須用另乙個字元替換,同時保留字元的順序。兩個字元不能對映到同乙個字元上,但字元可以對映自己本身。示例 1 輸入 s egg t add 輸出 true 示例 2 輸入...
LeetCode 205 同構字串
目錄 問題 解法一 給定兩個字串s和t,判斷它們是否是同構的。如果s中的字元可以被替換得到t,那麼這兩個字串是同構的。所有出現的字元都必須用另乙個字元替換,同時保留字元的順序。兩個字元不能對映到同乙個字元上,但字元可以對映自己本身。示例 1 輸入 s egg t add 輸出 true 示例 2 輸...
LeetCode 205 同構字串
題目描述 這是一道思路巧妙的題目 給定兩個字串 s 和 t,判斷它們是否是同構的。如果 s 中的字元可以被替換得到 t 那麼這兩個字串是同構的。所有出現的字元都必須用另乙個字元替換,同時保留字元的順序。兩個字元不能對映到同乙個字元上,但字元可以對映自己本身。示例 1 輸入 s egg t add 輸...