题解 | #第一个只出现一次的字符#

第一个只出现一次的字符

http://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c

import java.util.HashMap; import java.util.Map;

public class Solution { public int FirstNotRepeatingChar(String str) { int num = -1; Map<Character, Integer> map = new HashMap<>();

    for (int i = 0; i < str.length(); i++) {
    	char c = str.charAt(i);
		if(map.keySet().contains(c)) {//如果map中存在这个字符,就将其置为-1
			map.replace(c, -1);
		}else {//如果不存在,就将索引放进去
			map.put(c, i);
		}
	}
    for (Integer value : map.values()) {//由于map是一个有序数列,因此把values除-1外最小的返回
		if(value != -1) {
			if(num == -1) num = value;
			else if(num > value) num = value;
		}
	}
    
    return num;
}

}

全部评论

相关推荐

01-30 09:45
燕山大学 Java
喵_coding:这种直接跑就完事了 哪有毕业了才签合同 任何offer和三方都没有的
点赞 评论 收藏
分享
落魄小fw:把技术栈写写,然后项目里稍微写写怎么实现的,优化了什么东西,性能提升多少等等,感觉有点空了,优化一下找实习问题不大
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务