0%

leetCode-242:Valid Anagram

问题描述

给定两个字符串,要求判断两个字符串是否是异位词。异位词的定义:两个字符串的字符种类一样,每个种类的字符个数相同,不要求顺序相同。题目链接:点我

样例输入输出

输入:s = “anagram”, t = “nagaram”

输出:true

输入:s = “rat”, t = “car”

输出:false

问题解法

此题比较简单,因为题目限制了字符串只会由小写字母组成,所以,可以直接用数组表示每个字符的数量,然后比较数组是否相同,如果相同,则是异位词,否则不是。代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public boolean isAnagram(String s, String t) {
int[] first = new int[26];
int[] second = new int[26];
for (int i = 0; i < s.length(); i++) {
first[s.charAt(i) - 'a']++;
}

for (int i = 0; i < t.length(); i++) {
second[t.charAt(i) - 'a']++;
}

for (int i = 0; i < 26; i++) {
if (first[i] != second[i]) {
return false;
}
}

return true;
}
}