• 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;
        }
    };
    幸运之神的降临,往往只是因为你多看了一眼,多想了一下,多走了一步。
  • 相关阅读:
    大牛都是这样写测试用例的,你get到了嘛?
    炸!分享美团面试关于selenium的面试题
    功能测试如何快速转向自动化测试?
    接口测试之深入理解HTTPS
    Linux之用户和权限
    Hash函数及其应用
    用代码控制网络断开与重连
    Windows Azure初体验
    JS跨域知识整理
    最大子序列和问题
  • 原文地址:https://www.cnblogs.com/strongYaYa/p/5886495.html
Copyright © 2020-2023  润新知