剑指offer(54)字符流中第一个不重复的数字

题目描述

请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。

输出描述:

如果当前字符流没有存在出现一次的字符,返回#字符。

 

题目分析

我们之前有讲过,一般遇到次数问题,就可以想到用哈希表来统计次数。这题也是如此。

这题算比较简单,没什么说的

此外这题还可以借助indexOf和lastIndexOf来做,具体留给读者自己解决了。 

 

代码

let map = {};
function Init() {
  map = {};
}
function Insert(ch) {
  if (map[ch]) {
    map[ch] += 1;
  } else {
    map[ch] = 1;
  }
}
function FirstAppearingOnce() {
  for (const i in map) {
    if (map[i] === 1) {
      return i;
    }
  }
  return '#';
}

 

posted @ 2018-07-03 19:56  汕大小吴  阅读(696)  评论(0编辑  收藏  举报