加载中...
剑指 Offer II 032-有效的变位词
发表于:2021-12-03 | 分类: 简单
字数统计: 383 | 阅读时长: 1分钟 | 阅读量:

原文链接: https://leetcode-cn.com/problems/dKk3P7

中文题目

给定两个字符串 st ,编写一个函数来判断它们是不是一组变位词(字母异位词)。

注意:若 st 中每个字符出现的次数都相同且字符顺序不完全相同,则称 st 互为变位词(字母异位词)。

 

示例 1:

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

示例 2:

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

示例 3:

输入: s = "a", t = "a"
输出: false

 

提示:

  • 1 <= s.length, t.length <= 5 * 104
  • s and t 仅包含小写字母

 

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

 

注意:本题与主站 242 题相似(字母异位词定义不同):https://leetcode-cn.com/problems/valid-anagram/

通过代码

高赞题解

简单题我再重拳出击

class Solution {
    public boolean isAnagram(String s, String t) {
        int m = s.length(), n = t.length();
        if(m != n) return false;
        if(s.equals(t)) return false;//这里有个特殊样例,相等判断为非变位词
        int[] cnt1 = new int[26];
        int[] cnt2 = new int[26];
        for(char c : s.toCharArray()) cnt1[c - 'a']++;
        for(char c : t.toCharArray()) cnt2[c - 'a']++;
        return Arrays.equals(cnt1, cnt2);
    }
}

统计信息

通过次数 提交次数 AC比率
5416 9097 59.5%

提交历史

提交时间 提交结果 执行时间 内存消耗 语言
上一篇:
剑指 Offer II 094-最少回文分割
下一篇:
剑指 Offer II 095-最长公共子序列
本文目录
本文目录