給定兩個字串 s 和 t,判斷它們是否是同構的。
如果 s 中的字元可以被替換得到 t ,那麼這兩個字串是同構的。
輸入: s = "egg", t = "add"
輸出: true
輸入: s = "foo", t = "bar"
輸出: false
計數排序包含桶排序的演算法思想。
計數排序適用於量特別大,但是資料範圍小的情況(員工年齡排序,快速得知高考名次)
建立count陣列用來計數,陣列的長度是可以取值的長度。比如0-60歲,陣列長度就設為61,陣列下標index即為0-60,讀取到某個數則下標+1,比如有3個0歲,則下標為count[0]的value值為3
public
boolean
isisomorphic
(string s, string t)
//記錄每個字元出現的次數
int length = s.
length()
;int
preindexs =
newint
[128];
//計數排序思想
int[
] preindext =
newint
[128];
for(
int i =
0; i < length; i++
) preindexs[sc]
= i +1;
//出現了一次, 則+1
preindext[tc]
= i +1;
}return
true
;}
205 同構字串
一開始寫的是用兩個字典,將兩個字串的不同元素作為鍵,值是乙個列表,儲存該字串中等於當前鍵的索引,如abcccdd字串的字典為 然後將兩個字典的values 取出進行比較。class solution def isisomorphic self,s str,t str bool dic1,dic2 s...
205 同構字串
給定兩個字串 s 和 t,判斷它們是否是同構的。如果 s 中的字元可以被替換得到 t 那麼這兩個字串是同構的。所有出現的字元都必須用另乙個字元替換,同時保留字元的順序。兩個字元不能對映到同乙個字元上,但字元可以對映自己本身。示例 1 輸入 s egg t add 輸出 true 示例 2 輸入 s ...
205 同構字串
給定兩個字串 s 和 t,判斷它們是否是同構的。如果 s 中的字元可以被替換得到 t 那麼這兩個字串是同構的。所有出現的字元都必須用另乙個字元替換,同時保留字元的順序。兩個字元不能對映到同乙個字元上,但字元可以對映自己本身。輸入 s egg t add 輸出 true輸入 s foo t bar 輸...