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,看是不是能组成就可以。

    而且空字符也行,我佛辣

  • 相关阅读:
    GUI编程
    网络编程
    线程池详解_3
    多线程详解_2
    注解和反射_1
    多线程详解_1
    javaEE简要总结
    MarkDown使用教程简单介绍
    com.sun.xxx.utils不存在问题的解决
    解决npm install安装慢的问题
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/12834888.html
Copyright © 2011-2022 走看看