由于ascii码的范围是0~127,定义一个大小为128的数组,每出现一个字符,数组中字符对应的下标的位置将数值加一。
然后取的时候,遍历list,看哪个对应的数组中的值为1即可,没有则返回‘#’
import java.util.*;
public class Solution {
//Insert one char from stringstream
int []a=new int[128];
ArrayList<Character> list=new ArrayList<>();
public void Insert(char ch)
{
list.add(ch);
a[(int)ch]++;
}
//return the first appearence once char in current stringstream
public char FirstAppearingOnce()
{
for(int i=0;i<list.size();i++){
if(a[(int)list.get(i)]==1){
return list.get(i);
}
}
return '#';
}
}