首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客220063047号
马鞍山实验小学 C++
发布于黑龙江
关注
已关注
取消关注
@谢腾飞|:
题解 | #字符流中第一个不重复的字符
描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 后台会用以下方式调用Insert 和 FirstAppearingOnce 函数 string caseout = ""; 1.读入测试用例字符串casein 2.如果对应语言有Init()函数的话,执行Init() 函数 3.循环遍历字符串里的每一个字符ch { Insert(ch); caseout += FirstAppearingOnce() } 2. 输出caseout,进行比较。 返回值描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 示例1 输入: "google" 返回值: "ggg#ll" 题目简述 在集合中不断加入字符,对于新的集合,找到第一个只出现过一次的字符,若没有则返回 # 。 算法一: 哈希表+字符串 时间复杂度:O(N) 思路: 每个字符都有与之对应的ASCII码,可直接与数组下标对应,我们用数组a统计每个字符出现的次数。 Insert():每次插入一个元素都将它加入字符串中,然后将a数组加 1 。 FirstAppearingOnce():从 t 开始遍历字符串,找到第一个只出现过一次的字符 , 用 t 标记下这个位置,并返回它的字符串 。 代码: class Solution{public: //Insert one char from stringstream int a[1000]={0}; queue<char> q; string s; int t=0; void Insert(char ch) { s+=ch; a[ch]++; } //return the first appearence once char in current stringstream char FirstAppearingOnce() { for(int i=t;i<s.size();i++){ if(a[s[i]]==1){ t=i; return s[i]; } } return '#'; }}; 算法二:哈希表+队列 时间复杂度:O(N) 思路: 每个字符都有与之对应的ASCII码,可直接与数组下标对应,我们用数组a统计每个字符出现的次数。 Insert():用数组a记录字符出现的次数,将未出现过的字符加入队列中,然后不断判断队首字符,是否出现过多次,若有多次则弹出队首字符,否则停止,这样保证了队首始终为只出现过一次的字符。 FirstAppearingOnce():直接取队首元素即可,若队列为空,则返回#。 图解: 代码: class Solution{public: //Insert one char from stringstream int a[1000]={0}; queue<char> q; int t=0; void Insert(char ch) { a[ch]++;//统计元素出现的次数 if(a[ch]==1) q.push(ch); while(!q.empty()){ //弹出出现多次的字符,保证队首始终是只出现过一次的字符 if(a[q.front()]>1) q.pop(); else break; } } //return the first appearence once char in current stringstream char FirstAppearingOnce() { if(!q.empty()){ return q.front(); } return '#'; }};
点赞 0
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-24 11:43
已编辑
华南理工大学 演员/配音/模特
点点互动简历挂
点点互动简历挂,还是配不上游戏公司,我这一个小小的Java,未来该何去何从。
投递点点互动等公司10个岗位
点赞
评论
收藏
分享
07-03 17:09
已编辑
武汉工程大学邮电与信息工程学院 Java
现在Java开发这么难吗面试都没几个
26届找实习根本找不到啊,我的简历很差吗,也不至于一个没有吧
Lorn的意义:
1.你这根本就不会写简历呀,了解太少了 2.你这些项目经历感觉真的没啥亮点啊,描述的不行,重写书写一下让人看到核心,就继续海投 注意七八月份ofer还是比较多的,越往后机会越少,抓住时机,抓紧检查疏漏,加油
查看图片
点赞
评论
收藏
分享
昨天 18:59
苏州大学 集成电路IC设计
对日本祛魅
说实话,去日本旅游有很大的吸引力,日本是个很有魔力的地方,不仅仅是因为其干净,还有其商品的质量高。这个国家总是安安静静的,就连司机也总是对每一个乘客点头行礼,周围环境建筑也是一种动漫风格。刚开始几天被日本的干净和安静惊讶到了,佩服他们的秩序。渐渐地,慢慢地就发现不对劲了。以我短时间的观察,他们感觉一直被压抑着,例如夜晚不敢回家在街头驻足的中年男性。被各种规矩束缚着,一旦有人破坏了他们的规矩,无论有意无意,他们什么反应都有可能给出。这个社会的包容度很低。清一色的西装革履。连雨伞都潜移默化地规定透明的和黑色的长伞。基本看不到折叠伞。他们是真的活得累。因为有其他国家生活经验,试着入乡随俗,就会发现战...
我对___祛魅了
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
大模型应用开发面经 (5年经验)
8140
2
...
别害怕前端手写,真没想象的难
7167
3
...
🍀双非鼠鼠上岸大厂攻略🍀
4268
4
...
2025 年了,万分推荐的前端学习路径!!!
3895
5
...
实习都是CRUD怎么包装
3398
6
...
先放弃找大厂的想法了
2631
7
...
滴滴提前批
2333
8
...
扪心自问,你配ssp吗
1947
9
...
经典问题,保研还是就业😵
1502
10
...
鹅厂这么活
1493
创作者周榜
更多
正在热议
更多
#
如何快速融入团队?
#
2062次浏览
41人参与
#
我对___祛魅了
#
5808次浏览
54人参与
#
中兴秋招
#
184166次浏览
2049人参与
#
26届的你,投了哪些公司?
#
1333次浏览
29人参与
#
简历上的经历如何包装
#
2942次浏览
92人参与
#
和同事相处最忌讳的是__
#
4307次浏览
53人参与
#
工作中哪个瞬间让你想离职
#
34078次浏览
252人参与
#
什么样的背景能拿SSP?
#
5353次浏览
58人参与
#
你遇到最难的面试题目是_
#
1106次浏览
25人参与
#
职场常用语录大全
#
5324次浏览
41人参与
#
职场人,说说你的烦心事
#
12860次浏览
108人参与
#
你最讨厌面试问你什么?
#
3013次浏览
62人参与
#
哪些公司校招卡第一学历
#
85445次浏览
370人参与
#
机械人,秋招第一次笔试的企业是哪家?
#
42447次浏览
336人参与
#
工作中的卑微时刻
#
20086次浏览
164人参与
#
元戎启行求职进展汇总
#
34541次浏览
256人参与
#
在职场上,你最讨厌什么样的同事
#
17944次浏览
175人参与
#
打工人的精神状态
#
63272次浏览
1059人参与
#
如果重来一次你还会读研吗
#
181194次浏览
1819人参与
#
担心入职之后被发现很菜怎么办
#
142666次浏览
822人参与
#
嵌入式岗知多少
#
47542次浏览
496人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务