如何从随机字符串中删除单词“ BALLOON”?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从随机字符串中删除单词“ BALLOON”?相关的知识,希望对你有一定的参考价值。
给出由大写英文字母组成的字符串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'),然后离开...
答案
感谢@Barmar的想法。这是我想出的:
以上是关于如何从随机字符串中删除单词“ BALLOON”?的主要内容,如果未能解决你的问题,请参考以下文章