zoukankan      html  css  js  c++  java
  • 383. Ransom Note

    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.

    canConstruct("a", "b") -> false
    canConstruct("aa", "ab") -> false
    canConstruct("aa", "aab") -> true
    class Solution {
        public boolean canConstruct(String ransomNote, String magazine) {
            if(ransomNote.length() == 0) return true;
            else if(magazine.length() == 0) return false;
            int[] arr = new int[26];
            
            for(int i = 0; i < magazine.length(); i++) arr[magazine.charAt(i) - 'a']++;
            int cou = 0;
            for(int i = 0; i < ransomNote.length(); i++){
                char c = ransomNote.charAt(i);
                if(arr[c - 'a'] > 0){
                    --arr[c-'a'];
                    cou++;
                }
                else return false;
            }
            if(cou == ransomNote.length()) return true;
            return false;
        }
    }

    问能否从magazine里组成ransomNote,把magazine先存到数组里,然后再遍历ransomNote,看是不是能组成就可以。

    而且空字符也行,我佛辣

  • 相关阅读:
    C语言程序设计第一次作业
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/12834888.html
Copyright © 2011-2022 走看看