242. 有效的字母异位词
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;
}
}