这里是关于“Java日常练习题,每天进步一点点(45)”的完整攻略:
1. 题目描述
该题目是一道字符串操作的练习题,在给定的字符串中找到第一个不重复的字符并返回其下标,如果不存在不重复的字符,就返回 -1。
2. 解题思路
字符串操作的题目,可以使用哈希表来解决。我们可以先遍历整个字符串,用哈希表来统计每个字符出现的次数,然后再次遍历字符串,找到第一个出现次数为1的字符并返回其下标即可。
3. 代码实现
以下是本题目的代码实现:
public static int firstUniqueChar(String s) {
Map<Character, Integer> map = new HashMap<>();
for (char c : s.toCharArray()) {
map.put(c, map.getOrDefault(c, 0) + 1);
}
for (int i = 0; i < s.length(); i++) {
if (map.get(s.charAt(i)) == 1) {
return i;
}
}
return -1;
}
4. 示例解释
例如,给定字符串 s = "leetcode",则我们可以通过以下方式解决该问题:
- 遍历字符串 s,将字符出现次数存储到哈希表中:{l=1, e=3, t=1, c=1, o=1, d=1};
- 再次遍历字符串 s,找到第一个出现次数为 1 的字符是 l,它的下标为 0,因此返回 0。
另外,如果给定字符串 s = "cc",则返回 -1,因为不存在不重复的字符。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java日常练习题,每天进步一点点(45) - Python技术站