如果是一个长度固定的字符串,可以定义哈希表的key是字符,value是字符出现的次数。每个字母根据其ASCⅡ(一共128种可能)值作为数组的下标对应数组的下标 对应数组的一个数字,数组中存储的是出现的次数。
public class Solution {
//Insert one char from stringstream
StringBuffer s = new StringBuffer();
int[] arr = new int[128];
public void Insert(char ch)
{
s.append(ch);
arr[ch] += 1;
}
//return the first appearence once char in current stringstream
public char FirstAppearingOnce()
{
char[] str = s.toString().toCharArray();
for(char c : str){
if(arr[c] == 1){
return c;
}
}
return '#';
}
}
参考34题,还可以用下面着一种方法,可以将hashCode换成LinkedHashCode
链接:https://www.nowcoder.com/questionTerminal/00de97733b8e4f97a3fb5c680ee10720
来源:牛客网
|