【LCR169】招式拆解

 

某套连招动作记作仅由小写字母组成的序列 arr,其中 arr[i] 第 i 个招式的名字。请返回第一个只出现一次的招式名称,如不存在请返回空格。


function firstUniqueMove(arr) {
    const moveCount = {}; // 用于存储每个招式出现的次数

    // 遍历数组,统计每个招式出现的次数
    for (const move of arr) {
        moveCount[move] = (moveCount[move] || 0) + 1;
    }

    // 遍历数组,找到第一个出现次数为 1 的招式
    for (const move of arr) {
        if (moveCount[move] === 1) {
            return move;
        }
    }

    // 如果没有只出现一次的招式,返回空格
    return ' ';
}

// 示例
const moves = ['a', 'b', 'c', 'a', 'b', 'd'];
const result = firstUniqueMove(moves);
console.log(result); // 输出 'c'

这个函数首先创建一个对象 moveCount 来存储每个招式出现的次数。然后,它遍历输入的招式数组,并更新每个招式的出现次数。最后,再次遍历数组,找到第一个出现次数为 1 的招式并返回。如果没有只出现一次的招式,则返回空格。

本文遵守 Attribution-NonCommercial 4.0 International 许可协议。 Attribution-NonCommercial 4.0 International