如何从随机字符串中删除单词“ BALLOON”?

问题描述 投票:-3回答:1

给出由大写英文字母组成的字符串S。我们可以一举删除S中的七个字母,形成单词BALLOON”(一个'B',一个'A',两个'L,两个'O'和一个'N'),并在S中保留较短的单词。缩短的S中剩余的字母足以允许删除单词“ BALLOON”的另一个实例,则可以执行下一步。给定字符串S为,我们可以应用于S的最大次数是多少?长度N,返回可以应用的最大移动数量。

示例:

给出S =“ BAONXXOLL”,该函数应返回1。BAONXXOLL-> XX

给出S =“ BAOOLLNNOLOLGBAX”,该函数应返回2。BAOOLLNNOLOLGBAX-> BOLLNOGAX-> GX

给出S =“ QAWABAWONL”,该函数应返回0。QAWABAWONL

给出S =“ ONLABLABLOON”,该函数应返回1。ONLABLABLOON-> OLABN

为以下假设编写一种有效的算法:

•N是在[1 ... 200,000j;]范围内的整数

•字符串S仅包含大写字母(A-Z)。

这是我想出的。

function removeBALLOON(temp){ // remember count but not move
  letRem = 0;
  if(temp.length >= 7){ // check if s contains balloon
    count++;
    let str = temp.replace(/[BALON]/g,(c)=>{ // remove balloon from s until 7 removals done
      if(letRem >= 7) return c;
      letRem++;
      return '';
    })
    let final = removeBALLOON(str); // run again
    return final;
  }
  return count;
}

count = 0;

// console.log(removeBALLOON("BAONXXOLL"));
console.log(removeBALLOON('BAOOLLNNOLOLGBAX'));

给出由大写英文字母组成的字符串S。一口气,我们可以从S删除七个字母,形成单词BALLOON”(一个'B',一个'A',两个'L,两个'O'和一个'N'),然后离开...

javascript regex string replace
1个回答
0
投票

感谢@Barmar的想法。这是我想出的:

© www.soinside.com 2019 - 2024. All rights reserved.