zoukankan      html  css  js  c++  java
  • leetcode之Ransom Note

    题目描述

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


    
    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.
    
    canConstruct("a", "b") -> false
    canConstruct("aa", "ab") -> false
    canConstruct("aa", "aab") -> true

    class Solution {
    public:
        bool canConstruct(string ransomNote, string magazine) {
            /*第一种方法
            if(ransomNote.size() > magazine.size()){
                return false;
            }
            for(int i = 0; i<ransomNote.size() ;){
                char ch = ransomNote[i];
                std::size_t found = magazine.find(ch); 
                if(found != std::string::npos){
                    ransomNote.erase(i,1);
                    magazine.erase(found,1);
                    continue;
                }
                i++;
            }
            if(ransomNote.length() == 0)
                return true;
            else
                return false;
        }*//*第二种检测方法*/
            int* arr = new int[26];
            for(int i=0;i<26;i++){
                arr[i] = 0;
            }
            for(int i=0;i<magazine.length();i++)
            {
                char c = magazine[i];
                arr[c-'a']++;
            }
            
            for(int i=0;i<ransomNote.length();i++)
            {
                char c = ransomNote[i];
                arr[c-'a']--;
                if(arr[c-'a']<0) 
                    return false;
            }
            
            return true;
        }
    };
    幸运之神的降临,往往只是因为你多看了一眼,多想了一下,多走了一步。
  • 相关阅读:
    ZooKeeper 到底解决了什么问题?
    10个 Linux 命令,让你的操作更有效率
    你的镜像真的安全吗?
    谁动了我的主机? 之活用History命令
    Linux vs Unix
    Linux应急响应入门——入侵排查
    (一)Sharding-JDBC分库分表概述
    (三)微服务的注册中心—Eureka
    (二)springcloud功能组件
    (一)微服务基础
  • 原文地址:https://www.cnblogs.com/strongYaYa/p/5886495.html
Copyright © 2011-2022 走看看