LC205 同構字串 桶排序 計數排序

2021-10-13 03:08:26 字數 875 閱讀 5032

給定兩個字串 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 輸...