好的,我有一个面试编码问题,问题表明在一个循环中我必须找到一个非重复字符的第一个实例.因此,例如,如果字符串是"abcab",它将返回c,因为a和b重复.
我有以下内容遍历整个字符串,并输入发生在哈希映射中的字符数量,它的工作原理.
private static boolean findFirstCharacter(String s) {
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
for(int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if(!map.containsKey(c)){
map.put(c,1);
}else{
int value = map.get(c);
value++;
map.put(c,value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在显然我可以再次迭代并找到键值为1的第一个实例,但它必须是一个循环.无论如何,根据我所拥有或正在接近这个错误,这样做是否仍然存在?