LeetCode 242. 有效的字母异位词(Valid Anagram)

242. 有效的字母异位词

LeetCode242. Valid Anagram

题目描述
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。

示例 1:
输入: s = "anagram", t = "nagaram"
输出: true

示例 2:
输入: s = "rat", t = "car"
输出: false

说明:
你可以假设字符串只包含小写字母。

进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

Java 实现

class Solution {
    // 个人思路
    public boolean isAnagram1(String s, String t) {
        if (s == null || t == null) {
            return s == null && t == null;
        }
        if (s.length() != t.length()) {
            return false;
        }
        Map<Character, Integer> map = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            if (map.containsKey(s.charAt(i))) {
                map.put(s.charAt(i), map.get(s.charAt(i)) + 1);
            } else {
                map.put(s.charAt(i), 1);
            }
        }
        for (int i = 0; i < t.length(); i++) {
            if (map.containsKey(t.charAt(i))) {
                map.put(t.charAt(i), map.get(t.charAt(i)) - 1);
            }
        }
        for (Character character : map.keySet()) {
            if (map.get(character) != 0) {
                return false;
            }
        }
        return true;
    }

    // 参考思路
    public boolean isAnagram(String s, String t) {
        if (s == null || t == null) {
            return s == null && t == null;
        }
        if (s.length() != t.length()) {
            return false;
        }
        int[] res = new int[26];
        for (int i = 0; i < s.length(); i++) {
            res[s.charAt(i) - 'a']++;
        }
        for (int j = 0; j < t.length(); j++) {
            res[t.charAt(j) - 'a']--;
        }
        for (int i = 0; i < s.length(); i++) {
            if (res[s.charAt(i) - 'a'] != 0) {
                return false;
            }
        }
        return true;
    }
}

参考资料

原文地址:https://www.cnblogs.com/hglibin/p/10806647.html

时间: 2024-10-07 07:42:01

LeetCode 242. 有效的字母异位词(Valid Anagram)的相关文章

Java实现 LeetCode 242 有效的字母异位词

有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假设字符串只包含小写字母. 进阶: 如果输入字符串包含 unicode 字符怎么办?亨达全球HantecGlobal代理申请你能否调整你的

LeetCode 242 有效的字母异位词

class Solution { public: bool isAnagram(string s, string t) { int alphabet[26]={0}; for(int i=0;i<s.size();i++){ alphabet[s[i]-'a']++; } for(int i=0;i<t.size();i++){ alphabet[t[i]-'a']--; } for(int i:alphabet){ if(i!=0){ return false; } } return tru

LeetCode 第49题 字母异位词分组

(一) 题目描述 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", "tan", "ate", "nat", "bat"], 输出: [ ["ate","eat","tea"], ["nat","tan"]

力扣 | 242. 有效的字母异位词

题目: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram"输出: true示例 2: 输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母. 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-anagram

LeetCode 49. 字母异位词分组(Group Anagrams)

49. 字母异位词分组 49. Group Anagrams 题目描述 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", "tan", "ate", "nat", "bat"], 输出: [ ??["ate","eat","tea"], ??[&

【leetcode 简单】 第七十题 有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假设字符串只包含小写字母. 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况? class Solution:

[LeetCode]438. 找到字符串中所有字母异位词

题目 给定一个字符串?s?和一个非空字符串?p,找到?s?中所有是?p?的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串?s?和 p?的长度都不超过 20100. 说明: 字母异位词指字母相同,但排列不同的字符串. 不考虑答案输出的顺序. 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-all-anagrams-in-a-string 著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明

[leetcode] 49. 字母异位词分组

49. 字母异位词分组 桶排分类即可 class Solution { public List<List<String>> groupAnagrams(String[] strs) { Map<String, List<String>> map = new HashMap<>(); for (String str : strs) { map.computeIfAbsent(fun(str), k -> new ArrayList<&g

leetcode 有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假设字符串只包含小写字母. 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况? /** * @param {st