周末摸鱼

122 阅读1分钟

“气球” 的最大数量

0213.png

贴一下代码

function maxNumberOfBalloons(text: string): number {
    if(text.length < 7) return 0
    let strArr = text.split("");
    let b = 0;
    let a = 0;
    let l = 0;
    let o = 0;
    let n = 0;
    for(let i = 0; i < strArr.length; i++){
        if(strArr[i] === 'b'){
            b += 1
        }
        if(strArr[i] === 'a'){
            a += 1
        }
        if(strArr[i] === 'l'){
            l += 1
        }
        if(strArr[i] === 'o'){
            o += 1
        }
        if(strArr[i] === 'n'){
            n += 1
        }
    }
    let arr = [b,a,l,o,n];
    let reArr = arr.sort((a, b) => { return a-b })
    if(reArr[0] === 0){
        return 0
    } else {
        if((l >= 2 * reArr[0]) && (o >= 2 * reArr[0])){
            return reArr[0]
        } else {
            if(l >= o){
                return Math.floor(o / 2)
            } else {
                return Math.floor(l / 2)
            }
        }
    }
};

思路:

  • 首先将字符串转化为数组,然后统计字符个数
  • 然后根据短板原理区分每一种情况做出判断,返回相应个数
  • 加上 if(text.length < 7) return 0; 提升性能(提升一点是一点)