题目描述
分析
题目中给定的是insert方法和获取首个不重复字符的方法。我的思路是在全局设立一个ArrayList来存储插入的数据,在插入的时候不做多余操作;在获取结果的方法中,通过map来保存字符出现的频次,然后再遍历一次list,首个在map中对应值为1的字符就是需要返回的字符,如果没有找到最后就返回null。
代码
import java.util.*;
public class Solution {
ArrayList<Character> list = new ArrayList();
//Insert one char from stringstream
public void Insert(char ch)
{
list.add(ch);
}
//return the first appearence once char in current stringstream
public char FirstAppearingOnce()
{
HashMap<Character,Integer> map = new HashMap();
for(Character a : list) {
if(map.containsKey(a)) {
map.put(a ,map.get(a) + 1);
}else {
map.put(a, 1);
}
}
for(int i = 0; i < list.size(); i++){
if(map.get(list.get(i)) == 1) {
return list.get(i);
}
}
return '#';
}
}