两个由字母组成的字符串S1,S2 .判断S1是否包含S2中的所有字母。均为大写字母。
方法一:
使用HashMap
public static boolean zifuTest(char[] s1,char[] s2){
Map<Character,Character> map = new HashMap<Character,Character>();
for(int i =0;i<s1.length;i++){
map.put(s1[i], s1[i]);
}
for(char c :s2){
if(!map.containsKey(c)){
return false;
}
}
return true;
}
方法二;
使用位运算
public static boolean weiTest(char[] s1,char[] s2){
int hash = 0;
for(char c:s1){
hash = hash | (1<<(c-'A'));
}
for(char c:s2){
if((hash & (1<<(c-'A')))==0){
return false;
}
}
return true;
}