zoukankan      html  css  js  c++  java
  • leetCode Ransom Note

    1、题目描述

    Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the magazines ; otherwise, it will return false.

    Each letter in the magazine string can only be used once in your ransom note.

    Note:
    You may assume that both strings contain only lowercase letters.

    You may assume that both strings contain only lowercase letters.

     canConstruct("a", "b") -> false

    canConstruct("aa", "ab") -> false

    canConstruct("aa", "aab") -> true

    输入两个string ,判断第二个string是否能构造出第一个字符。

    2、问题分析

    如果第一个string 中的每个 字符都可以在 第二个字符中找到,并且该字符在第一个string中的数量少于在第二个string中的数量,则第二的string可以构造出第一个string。

    使用两个 map , ,map<char,int> 存储在每个string中对应的字符的出现次数。然后对比两个map 。

    3、代码

     1  bool canConstruct(string ransomNote, string magazine) {
     2         
     3         map<char,int> mR;
     4         for(char &c : ransomNote)
     5            mR[c]++;
     6         
     7         map<char,int> mM;
     8         for(char &c : magazine)
     9             mM[c]++;
    10         
    11         for(auto it : mR )
    12             if(it.second > mM[it.first])
    13                 return false;
    14         return true;
    15         
    16     }
    pp
  • 相关阅读:
    Js时间处理
    Css 显示删除条目效果
    vue权限控制菜单显示的简单实现
    js取对象的属性值循环
    标题的内容响应式设计
    将一个字符串当做一个方法名或对象的key
    JSON序列化和解析
    import 与export详解
    使用flask-mail扩展发送邮件
    正则表达式练习-计算器实现
  • 原文地址:https://www.cnblogs.com/wangxiaoyong/p/8665334.html
Copyright © 2011-2022 走看看