java实现:任意给定一个字符串,找到它第一个不重复的字符,并返回该字符的位序,如果不存在则返回-1。
时间: 2024-10-17 14:06:37 浏览: 27
在 Java 中,你可以通过哈希集合(如 `HashMap` 或者 `HashSet`)来解决这个问题。首先遍历字符串,将每个字符及其出现的次数存储到哈希表中。然后再次遍历字符串,查找第一个出现次数为 1 的字符,同时更新其位序。以下是一个简单的示例代码:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static int firstUniqChar(String s) {
// 创建一个空的哈希映射,键为字符,值为出现次数
Map<Character, Integer> charCount = new HashMap<>();
// 遍历字符串,统计字符出现次数
for (char c : s.toCharArray()) {
charCount.put(c, charCount.getOrDefault(c, 0) + 1);
}
// 再次遍历字符串,寻找第一个出现次数为1的字符及其位序
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (charCount.get(c) == 1) {
return i;
}
}
// 如果找不到唯一字符,返回 -1
return -1;
}
public static void main(String[] args) {
String str = "leetcode";
System.out.println(firstUniqChar(str)); // 输出:0,因为 'l' 是第一个不重复的字符
}
}
```
阅读全文