题目解析
本题可以利用栈结构解题。
将输入的卡牌按顺序入栈:
- 如果输入的卡牌card,和栈顶卡牌stack[-1]、以及栈顶后面一个卡牌stack[-2]一样,则形成三个连续相同卡牌,此时出栈stack[-1]和stack[-2]
- 如果栈中卡牌不足两个,或者stack[-1]、stack[-2]、card三个卡牌不完全相同,则card入栈
最后统计栈中卡牌数量:
- stack.size == 0 的话,则打印0
- stack.szie > 0的话,则将栈中元素以空格连接后打印
JS算法源码
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
// 输入处理
void (async function () {
const n = parseInt(await readline());
const cards = (await readline()).split(" ");
const stack = [