java刷题--242有效的字母异位词
Posted Anrys
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java刷题--242有效的字母异位词相关的知识,希望对你有一定的参考价值。
题目
代码
class Solution {
public boolean isAnagram(String s, String t) {
char[] schar = s.toCharArray();
char[] tchar = t.toCharArray();
Arrays.sort(schar);
Arrays.sort(tchar);
return Arrays.equals(schar,tchar);
}
}
哈希
class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length()) return false;
Map<Character, Integer> table = new HashMap<Character, Integer>();
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
table.put(ch, table.getOrDefault(ch, 0) + 1);
}
for (int i = 0; i < t.length(); i++) {
char ch = t.charAt(i);
table.put(ch, table.getOrDefault(ch, 0) - 1);
if (table.get(ch) < 0) {
return false;
}
}
return true;
}
}
class Solution {
public boolean isAnagram(String s, String t) {
if(s.length()!=t.length()) return false;
HashMap<Character,Integer> hash = new HashMap<Character,Integer>();
for(char ch:s.toCharArray()){
hash.put(ch,hash.getOrDefault(ch, 0)+1);
}
for(char ch:t.toCharArray()){
hash.put(ch, hash.getOrDefault(ch, 0)-1);
//前面加入后value一直是正数,小于零意味着有新的字母或者旧字母过多,由于长度一致旧字母过少肯定会导致新字母产生
if(hash.get(ch)<0) return false;
}return true;
}
}
结果
以上是关于java刷题--242有效的字母异位词的主要内容,如果未能解决你的问题,请参考以下文章