26.字符流中第一个不重复的字符

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

题目描述

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


输出描述:

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

解法:哈希表实现


类似上一篇文章:25.第一次只出现一次的字符https://blog.csdn.net/heda3/article/details/86766892


class Solution

{

public:

 //Insert one char from stringstream

   string s;

   char hash[256]={0};

   void Insert(char ch)

   {

       s+=ch;//拼接字符

       hash[ch]++;//在哈希表中统计个数

   }

 //return the first appearence once char in current stringstream

   char FirstAppearingOnce()

   {

     

       int size=s.size();

       for(int i=0;i<size;++i)

       {

           if(hash[s[i]]==1)//找出第一个出现的字符

               return s[i];

       }

       return '#';

   }

};

目录
相关文章
|
7月前
|
存储 Java 数据处理
|
7月前
|
Java
输入一个字符串,找出其中不含有重复字符的最长子串的长度。
这篇文章提供了一个Java解决方案,用于找出输入字符串中不含有重复字符的最长子串的长度,通过使用HashSet来跟踪字符并计算最长不重复字符子串。
输入一个字符串,找出其中不含有重复字符的最长子串的长度。
|
9月前
|
Java
JAVA工具类匹配重复或者连续的字符和符号
JAVA工具类匹配重复或者连续的字符和符号
|
10月前
|
索引 容器
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
|
10月前
|
Java Go
每日一题《剑指offer》字符串篇之字符流中第一个不重复的字符
每日一题《剑指offer》字符串篇之字符流中第一个不重复的字符
75 0
每日一题《剑指offer》字符串篇之字符流中第一个不重复的字符
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
129 0
|
Go
剑指offer 52. 字符流中第一个只出现一次的字符
剑指offer 52. 字符流中第一个只出现一次的字符
68 0
1. 实现含有中文字符的字符串逆转,如: “我是小萌新” 转换成“新萌小是我”(指针项目练习1)
1. 实现含有中文字符的字符串逆转,如: “我是小萌新” 转换成“新萌小是我”(指针项目练习1)
|
算法
给定m个不重复的字符 [a,b,c,d],以及一个长度为n的字符串tbcacbdata滑动窗口
给定m个不重复的字符 [a,b,c,d],以及一个长度为n的字符串tbcacbdata滑动窗口
273 0
|
测试技术
字符串中有多少个不重复的字符并按由前到后的顺序输出一个新的字符串和该字符串长度的整数
字符串中有多少个不重复的字符并按由前到后的顺序输出一个新的字符串和该字符串长度的整数
122 0