【解题思路】
在alist中存放第一次出现的字符,在blist中存放出现大于一次的字符。最后返回alist中第一个字符即可。第一次使用HashMap存放出现一次的字符,调试发现在HashMap中,Key并不是按照存放先后顺序存储的,无法判断哪个是最先出现的。
class Solution {
public char firstUniqChar(String s) {
if(s.equals("")) return ' ';
ArrayList<Character> alist = new ArrayList<Character>();
ArrayList<Character> blist = new ArrayList<Character>();
for(int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
if(!alist.contains(c) && !blist.contains(c))
{
alist.add(c);
}
else if(alist.contains(c))
{
for(int j = 0; j < alist.size(); j++)
{
if(alist.get(j) == c)
{
alist.remove(j);
break;
}
}
blist.add(c);
}
}
char ans = ' ';
if(!alist.isEmpty())
{
ans = alist.get(0);
}
return ans;
}
}