题目描述:

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

输出描述:

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

思路分析:

在插入操作中利用hash表,保存每个输入的字符出现的次数。再遍历当前的字符流,查询对应字符的hash表,为1即为所求的字符。时间空间复杂度都为O(n)。

代码:

 class Solution
{
public:
string str;
char hash[]={};
//Insert one char from stringstream
void Insert(char ch)
{
str = str+ch;
hash[ch]++;
}
//return the first appearence once char in current stringstream
char FirstAppearingOnce()
{
int len = str.size();
for(int i=; i<len; i++)
{
if(hash[str[i]]==)
return str[i];
}
return '#';
} };

最新文章

  1. 百度统计接口demo中错误
  2. Hyper-V架构与VMware ESXi的差异
  3. Android源码下载并绑定到Eclipse中
  4. web性能优化之:no-cache与must-revalidate深入探究
  5. python学习笔记 class
  6. JPA-一对多关系
  7. 支持度(support)和置信度(confidence)
  8. Double与BigDecimal 比较
  9. xml约束之schema
  10. C3P0连接池详细配置
  11. nyist 488 素数环(搜索+回溯)
  12. JS高级用法
  13. vue表单详解——小白速会
  14. Python面试笔记四
  15. Loj #3059. 「HNOI2019」序列
  16. 《Professional JavaScript for Web Developers》day02
  17. Linux java进程无故被kill
  18. C. Good Array
  19. pandas分组group
  20. nginx: [warn] duplicate MIME type &quot;text/html&quot;错误

热门文章

  1. INTERVAL 用法 mysql
  2. Windows10 上安装 Anaconda 后命令提示符(cmd)下无法执行(python / pip)命令解决方案
  3. Java 之 HTTP 协议
  4. 令人兴奋的TOP Server OPC Server v6.5 五大功能(下)
  5. docker中基于centos镜像部署lnmp环境 php7.3 mysql8.0 最新版
  6. pycharm 专业注册
  7. go调度: 第二部分-go调度器
  8. TCN时间卷积网络——解决LSTM的并发问题
  9. jmeter脚本中请求参数获取的几种方式
  10. Kafaka 总结