一、題目大意
https://leetcode.cn/problems/valid-anagram
給定兩個字串 s 和 t ,撰寫一個函式來判斷 t 是否是 s 的字母異位詞,
注意:若 s 和 t 中每個字符出現的次數都相同,則稱 s 和 t 互為字母異位詞,
示例 1:
輸入: s = "anagram", t = "nagaram"
輸出: true
示例 2:
輸入: s = "rat", t = "car"
輸出: false
提示:
- 1 <= s.length, t.length <= 5 * 104
- s 和 t 僅包含小寫字母
進階: 如果輸入字串包含 unicode 字符怎么辦?你能否調整你的解法來應對這種情況?
二、解題思路
建立一個哈希表映射,一共26個字母,可以用一個陣列來代替哈希表,我們先判斷兩個字串長度不相同回傳false,然后把s中所有字符出現個數統計起來,存入一個大小為26的陣列中,再統計t字串,如果發現不匹配則回傳false,
三、解題方法
3.1 Java實作
public class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length()) {
return false;
}
int[] m = new int[26];
for (char c : s.toCharArray()) {
m[c - 'a']++;
}
for (char c : t.toCharArray()) {
if (--m[c - 'a'] < 0) {
return false;
}
}
return true;
}
}
四、總結小記
- 2022/8/25 最怕一知半解給瞎出主意
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/502725.html
標籤:其他
上一篇:如何給注冊中心錦上添花?
下一篇:向量距離與相似度函式
