剑指offer:字符流中第一个不重复的字符
2024-09-07 05:05:18
题目描述:
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"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 '#';
} };
最新文章
- 百度统计接口demo中错误
- Hyper-V架构与VMware ESXi的差异
- Android源码下载并绑定到Eclipse中
- web性能优化之:no-cache与must-revalidate深入探究
- python学习笔记 class
- JPA-一对多关系
- 支持度(support)和置信度(confidence)
- Double与BigDecimal 比较
- xml约束之schema
- C3P0连接池详细配置
- nyist 488 素数环(搜索+回溯)
- JS高级用法
- vue表单详解——小白速会
- Python面试笔记四
- Loj #3059. 「HNOI2019」序列
- 《Professional JavaScript for Web Developers》day02
- Linux java进程无故被kill
- C. Good Array
- pandas分组group
- nginx: [warn] duplicate MIME type ";text/html";错误