LeetCode 1189. “气球” 的最大数量题解

题解

2022.02.13 每日一题

统计字符串中可以组成”balloon”的数量,挺简单的,只需要统计出来字符串中有多少组可以完整组成 balloon 单词的组数就可以了。

具体代码以及注释如下:

class Solution {
          
   
public:
    int maxNumberOfBalloons(string text) {
          
   
        // 新建一个数组用来统计 b、a、l、o、n 各个字符的数量
        vector<int> cnt(5, 0);
        // 筛选出各个字符,并且统计数量
        for (char ch: text) {
          
   
            if (ch == b) {
          
   
                cnt[0]++;
            } else if (ch == a) {
          
   
                cnt[1]++;
            } else if (ch == l) {
          
   
                cnt[2]++;
            } else if (ch == o) {
          
   
                cnt[3]++;
            } else if (ch == n) {
          
   
                cnt[4]++;
            }
        }
        // 由于单词 balloon 之中,有两个 l 、 o 组成所以需要除以 2 来判断个数
        cnt[2] /= 2;
        cnt[3] /= 2;
        // 对数组进行排序,返回数组之中的最小值,即为组成 balloon 单词的最小数量
        sort(cnt.begin(), cnt.end());
        return cnt[0];
    }
};
class Solution {
          
   
    public int maxNumberOfBalloons(String text) {
          
   
        // 新建一个数组用来统计 b、a、l、o、n 各个字符的数量
        int[] cnt = new int[5];
        // 筛选出各个字符,并且统计数量
        for (int i = 0; i < text.length(); i++) {
          
   
            char ch = text.charAt(i);
            if (ch == b) {
          
   
                cnt[0]++;
            } else if (ch == a) {
          
   
                cnt[1]++;
            } else if (ch == l) {
          
   
                cnt[2]++;
            } else if (ch == o) {
          
   
                cnt[3]++;
            } else if (ch == n) {
          
   
                cnt[4]++;
            }
        }
        // 由于单词 balloon 之中,有两个 l 、 o 组成所以需要除以 2 来判断个数
        cnt[2] /= 2;
        cnt[3] /= 2;
        // 对数组进行排序,返回数组之中的最小值,即为组成 balloon 单词的最小数量
        Arrays.sort(cnt);
        return cnt[0];
    }
};
经验分享 程序员 微信小程序 职场和发展