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
  • 相关阅读:
    训练赛
    树形dp专题
    返回的中文乱码问题
    富文本内容放在xml标签中;
    xml 截取 标签中的字符串;字符串去掉空格
    Intetn 传输 (2)
    安卓修改标题栏
    简单的数据存储(SharedPreferences.Editor)
    Intent的数据传输
    python实现快排+冒泡排序
  • 原文地址:https://www.cnblogs.com/wangxiaoyong/p/8665334.html
Copyright © 2011-2022 走看看