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
  • 相关阅读:
    rockGenmel stone.txt
    WHICHDAY.txt
    WORKDAYS.txt
    WAIT_YN.txt
    WEEKDAYS.txt
    WHEREXY.txt
    KeySelected.txt
    WINDOW.txt
    UPPER.txt
    ParentShapes It.txt
  • 原文地址:https://www.cnblogs.com/wangxiaoyong/p/8665334.html
Copyright © 2011-2022 走看看