题解 | #找出字符串中第一个只出现一次的字符#

找出字符串中第一个只出现一次的字符

https://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
  // Write your code here
  while ((line = await readline())) {
    // 统计出现次数
    const temp = line.split("").reduce((res, cur) => {
      res[cur] !== undefined ? res[cur]++ : (res[cur] = 1);
      return res;
    }, {});
    // 找到出现一次的字符
    const onlyOnce = Object.keys(temp).filter((key) => temp[key] === 1);
    // 不存在输出-1
    if (!onlyOnce.length) return console.log(-1);
    // 找到最靠前的字符
    let minIndex = line.length - 1;
    onlyOnce.forEach(
      (item) => (minIndex = Math.min(minIndex, line.indexOf(item)))
    );
    console.log(line[minIndex]);
  }
})();

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务