题目解析:
1、输入为String 字母卡片(可以重复)和一个单词,问利用字母卡片是否能拼出单词。
事例:字母卡片“Zoos”,单词“Zoo”
答案是可以的输出true
如果单词是“Zoom”
输出为FALSE
/*我一共给他说了两个解法,并写出了代码,
第一个是利用数组实现的,效率不高,在这就不写了,简单说下思路吧,
就是把这两个输入都转换成数组,
然后对单词数组的每一个挨个比较卡片是否有,
若是有就将这两个为位置的字符用特殊字符如数字1代替
表明可以匹配的上且卡片也用掉了,遍历完接下来,
看字母数组是否全是特殊字符,若是,则返回真,否则为假
第二个解法是医用hash表进行操作,在这边写下吧*/
public boolean canweDo(String card,String world){
boolean flag=true;
Map<character,Integer> cardMap=new HashMap<>();
Map<character,Integer> worldMap=new HashMap<>();//整形用于存储字母出现的次数
//接下来初试化两个表
int num1=card.length;
for(int i=0;i<num1;i++){
int k=0;
char a=card.charAt(i)
if(cardMap.containsKey(a)){
k=cardMap.get(i);
k++;
}
cardMap.put