您的位置:首页 > 职场人生

剑指offer——面试题55:字符流中第一个不重复的字符

2018-03-30 11:36 225 查看

剑指offer——面试题55:字符流中第一个不重复的字符

对此题最大的感想是:

1)区分deque(双端队列)和queue(队列);

2)要熟悉queue的基本函数

此题答案如下:

class Solution
{
public:
//Insert one char from stringstream
void Insert(char ch) {
str_temp.push(ch);//队列queue用push把元素压入队列中
Hash_temp[ch]++;
}
//return the first appearence once char in current stringstream
char FirstAppearingOnce() {
while(!str_temp.empty() && Hash_temp[str_temp.front()] >=2) {//队列queue的front()返回首元素
str_temp.pop();                                      //但不删除,pop()删除首元素,但不返回
}                                          //与front()函数类似,back()函数返回尾元素,亦不删除
if(str_temp.empty())
return '#';
else
return str_temp.front();
}
private:
int Hash_temp[256] = {0};//包含所有字符的简易哈希表
queue<char> str_temp;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: