题目描述
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
import java.util.LinkedHashMap;
public class 第一次只出现一次的字符 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(FirstNotRepeatingChar("abbbccc"));
}
public static int FirstNotRepeatingChar(String str) {
if ("".equals(str)||str==null) {
return -1;
}
char[] input = str.toCharArray();
LinkedHashMap<Character, Integer> hashMap = new LinkedHashMap();
for (int i = 0; i < input.length; i++) {
if (hashMap.containsKey(input[i])) {
hashMap.put(input[i], -1);
}else {
hashMap.put(input[i], i);
}
}
for (Character c:hashMap.keySet()) {
if (hashMap.get(c)!=-1) {
return hashMap.get(c);
}
}
return -1;
}
}
本文介绍了一种使用Java实现的方法,可以在给定的字符串中找到第一个仅出现一次的字符,并返回其位置。采用LinkedHashMap来保持字符的插入顺序,通过两次遍历实现高效查找。
494

被折叠的 条评论
为什么被折叠?



