242. 有效的字母异位词

2021-09-23  本文已影响0人  crazyfox

242. 有效的字母异位词

难度简单432 收藏 分享 切换为英文 接收动态 反馈

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

注意:*s**t*中每个字符出现的次数都相同,则称 *s**t*互为字母异位词。

示例 1:

<pre style="box-sizing: border-box; font-size: 13px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; margin-top: 0px; margin-bottom: 1em; overflow: auto; background: rgba(var(--dsw-fill-tertiary-rgba)); padding: 10px 15px; color: rgba(var(--grey-9-rgb),1); line-height: 1.6; border-radius: 3px; white-space: pre-wrap;">输入: s = "anagram", t = "nagaram"
输出: true
</pre>

示例 2:

<pre style="box-sizing: border-box; font-size: 13px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; margin-top: 0px; margin-bottom: 1em; overflow: auto; background: rgba(var(--dsw-fill-tertiary-rgba)); padding: 10px 15px; color: rgba(var(--grey-9-rgb),1); line-height: 1.6; border-radius: 3px; white-space: pre-wrap;">输入: s = "rat", t = "car"
输出: false</pre>

思路:
哈希表
代码:

class Solution {
    public boolean isAnagram(String s, String t) {
        if(s==null || t==null) return false;
        if(s.length()!=t.length())return false;
        int[] charstr = new int[26];
        for(int i=0;i<s.length();i++){
            charstr[s.charAt(i)-'a']++;
        }
        for(int i=0;i<t.length();i++){
            if(charstr[t.charAt(i)-'a']<=0)return false;
            charstr[t.charAt(i)-'a']--;
        }
        return true;
    }
}
上一篇下一篇

猜你喜欢

热点阅读