剑指offer面试题55 字符流中第一个不重复的字符(Java实现)

来源:互联网 发布:淘宝评分低怎么办 编辑:程序博客网 时间:2024/05/29 10:12

解题思路:

利用一个哈希表来存放字符出现的次数,键为char,值为字符出现的次数,同时利用一个集合ArrayList来存放每个出现的字符,用于在后续遍历时取到每一个字符

import java.util.ArrayList;import java.util.LinkedHashMap;public class Solution {//创建一个哈希表,用于存放字符流中每个字符出现的次数LinkedHashMap<Character, Integer> linkedHashMap = new LinkedHashMap<>();ArrayList<Character> arrayList = new ArrayList<>();//Insert one char from stringstreampublic void Insert(char ch) {if (linkedHashMap.containsKey(ch)) {Integer value = linkedHashMap.get(ch);value++;linkedHashMap.put(ch, value);} else {linkedHashMap.put(ch, 1);}arrayList.add(ch);}// return the first appearence once char in current stringstreampublic char FirstAppearingOnce() {for (int i = 0 ; i < arrayList.size(); i++) {Character ch = arrayList.get(i);if (linkedHashMap.get(ch) == 1) {return ch;}}return '#';}}


阅读全文
0 0
原创粉丝点击