题目描述:
给定两个字符串 s
和 t
,编写一个函数来判断 t
是否是 s
的字母异位词。
注意:若 s
和 t
中每个字符出现的次数都相同,则称 s
和 t
互为字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram" 输出: true
示例 2:
输入: s = "rat", t = "car" 输出: false
思路:
1、先判断两个字符串长度是否相同,不相同直接false
2、定义一个字母表,代表26个英文字母,遍历这两个字符串,对第一个字符串中的字符,出现进行 +1 操作,第二个字符串进行 -1 操作
3、字母表中结果全为0(及不发生变化,每个字母加拉多少,就减去多少),说明合格
public class li242 {
public static void main(String[] args) {
String s = "anagram";
String t = "nagaram";
System.out.println(isAnagram(s, t));
}
public static boolean isAnagram(String s, String t) {
if(s.length()!=t.length()) {
return false;
}
int alp[] = new int[26];
for (int i = 0; i < s.length(); i++) {
alp[s.charAt(i)-'a']++;//s里面有这个字符就+1
alp[t.charAt(i)-'a']--;//t里面有这个字符就-1
}
for(int temp:alp) {
if(temp!=0) {
return false;
}
}
return true;
}
}