有效的字母異位詞

2021-09-07 20:25:01 字數 1110 閱讀 8710

思路就是開闢一塊 記憶體 去存26個字母, 遍歷第乙個字串 遇到就在相應的位置上+1 , 『a』的 int值是97(ascll編碼),再去遍歷第二個字串,在字母表裡 相應的位置 --;最後只要遍歷字母表上是否為0就知道 是不是字母異位了。

但是這個方法要是遇到unicode 就不好處理了。 

給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。

示例 1:

輸入: s = "anagram", t = "nagaram"

輸出: true

示例 2:

輸入: s = "rat", t = "car"

輸出: false

說明:

你可以假設字串只包含小寫字母。

高階:

如果輸入字串包含 unicode 字元怎麼辦?你能否調整你的解法來應對這種情況?

public bool isanagram(string s, string t)

if(s.length!=t.length)

char cha1 = s.toarray();

char cha2 = t.toarray();

int ap = new int[26];

for (int i = 0; i < cha1.length; i++)

for(int i = 0; i < cha2.length; i++)

for (int i = 0; i 在處理字串的時候 一定要注意,在字串比較的時候,遍歷每乙個字元string s="***xx";

s[0]  對字串的操作會非常消耗效能,字串是比較特殊的引用型別, 它在堆裡面放應用,棧(也叫堆疊)裡面申請記憶體空間, 引用指向 記憶體位址。每次操作都很費效能 都會有boxing。最好就是 先 申請乙個記憶體區 放置char 把字串轉成char陣列;再對char進行處理,或者借助stringbuilder類進行操作。

有效的字母異位詞

原題位址 判斷是否是字母異位詞即判斷字串中是否只有字元的位置不同,也就是判斷兩個字串中包含的字元以及這些字元出現的次數是否相同 首先既然只有位置不同,那麼長度不同的字串必然不符合要求。將字串轉換為字元陣列之後對陣列進行排序,這兩個陣列中的元素必然全部相等 public boolean isanagr...

有效的字母異位詞

給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true示例 2 輸入 s rat t car 輸出 false說明 你可以假設字串只包含小寫字母。解 看到這個題,想到的就是判斷兩個字串中的字母及其數量是否...

有效的字母異位詞

給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 說明 你可以假設字串只包含小寫字母。高階 如果輸入字串包含 unicode 字元怎麼辦?你...