当前位置:网站首页>Force buckle 1189 Maximum number of "balloons"

Force buckle 1189 Maximum number of "balloons"

2022-07-06 03:17:00 Ruthless young Fisherman

subject

Give you a string text, You need to use text To piece together as many words as possible “balloon”( balloon ).

character string text Each letter in can only be used once at most . Please return the maximum number of words you can piece together “balloon”.

Example

 Insert picture description here
Input :text = “nlaebolko”
Output :1

 Insert picture description here
Input :text = “loonbalxballpoon”
Output :2

Input :text = “leetcode”
Output :0

source : Power button (LeetCode)
link :https://leetcode-cn.com/problems/maximum-number-of-balloons
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .

Method 1: Simulation statistics

Java Realization 1: Hashtable
class Solution {
    
    public int maxNumberOfBalloons(String text) {
    
        Map<Character, Integer> map = new HashMap<>();
        map.put('b', 0);
        map.put('a', 0);
        map.put('l', 0);
        map.put('o', 0);
        map.put('n', 0);

        for (char c : text.toCharArray()) {
    
            if (map.containsKey(c)) map.put(c, map.get(c) + 1);
        }

        int min = Integer.MAX_VALUE;
        for (char key : map.keySet()) {
    
            int var = 0;
            if (key == 'l' || key == 'o') {
    
                var = map.get(key) / 2;
            } else {
    
                var = map.get(key);
            }
            if (var < min) min = var;
        }
        return min;
    }
}

 Insert picture description here

Java Realization 2: Array
class Solution {
    
    public int maxNumberOfBalloons(String text) {
    
        int[] cnt = new int[5];//b a l o n
        for (char c : text.toCharArray()) {
    
            if (c == 'b') cnt[0]++;
            else if (c == 'a') cnt[1]++;
            else if (c == 'l') cnt[2]++;
            else if (c == 'o') cnt[3]++;
            else if (c == 'n') cnt[4]++;
        }

        cnt[2] /= 2;
        cnt[3] /= 2;

        int ans = Integer.MAX_VALUE;
        for (int i : cnt) ans = Math.min(ans, i);
        return ans; 
    }
}

 Insert picture description here

原网站

版权声明
本文为[Ruthless young Fisherman]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202132323226469.html