您的位置:首页 > Web前端

剑指offer-字符流中第一个不重复的字符

2018-04-02 21:43 357 查看

题目描述

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

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

地址: 牛客链接

问题分析

emmmm…和 剑指offer-第一个只出现一次的字符有什么区别吗,或许这是道数据结构设计题吧…

代码实现

public class Solution {
//Insert one char from stringstream
private int[] map = new int[256];
private StringBuffer sb = new StringBuffer();
public void Insert(char ch)
{
++map[ch];
sb.append(ch);
}
//return the first appearence once char in current stringstream
public char FirstAppearingOnce()
{
int length = sb.length();
for (int i = 0; i < length; i++ ) {
char ch = sb.charAt(i);
if(map[ch] == 1) {
return ch;
}
}
return '#';

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息