华为od德科面试数据算法解析 2022-6-20 字母卡片拼接

题目解析:

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

猜你喜欢

转载自blog.csdn.net/qq_38735017/article/details/125496356