11/22
1.HashMap
java和c++里map的差别之一:c++会给未建立映射的value赋予初值而java会报错。
所以必须得先判断一下是否该键值存在。
常用方法:
HashMap<集合A,集合B> 名称 = new HashMap<集合A,集合B>(大小);
hMap.put(Key,Value); //给key和value建立映射关系
hMap.get(Key);//获取key的value
hMap.containsKey(Key)//是否存在Key的映射
class Solution {
public boolean isAnagram(String s, String t) {
HashMap<Character, Integer> hMap = new HashMap<Character, Integer>();
int n=s.length();
if (n != t.length()) {
return false;
}
for(int i=0;i<n;i++){
if(!hMap.containsKey(s.charAt(i))){
hMap.put(s.charAt(i),1);
}
else {
hMap.put(s.charAt(i), hMap.get(s.charAt(i)) + 1);
}
}
for(int i=0;i<n;i++){
if(!hMap.containsKey(t.charAt(i))){
return false;
}
hMap.put(t.charAt(i),hMap.get(t.charAt(i))-1);
if(hMap.get(t.charAt(i))<0){
return false;
}
}
return true;
}
}
2.字符型数组排序
Arrays.sort(char []ch);
Arrays.equals(char []a,char []b);
class Solution {
public boolean isAnagram(String s, String t) {
char a[]=s.toCharArray();
char b[]=t.toCharArray();
Arrays.sort(a);
Arrays.sort(b);
System.out.println(a);
System.out.println(b);
if(Arrays.equals(a,b))
return true;
return false;
}
}