题解 | 找出字符串中第一个只出现一次的字符
#牛客创作赏金赛# #2025,我想......# #刷题我是认真的#
解题思路:
- 先将统计字符出现的次数,放入到map中
- 在遍历map,使用indexOf获取其在字符串的索引位置,不断比较找出最小值,没有则等于-1
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String s = in.next(); char[] cArr = s.toCharArray(); List<Character> list = new ArrayList<>(); Map<Character, Integer> map = new HashMap<>(); for (char c : cArr) { int num = map.getOrDefault(c, 0); map.put(c, num + 1); } int index = Integer.MAX_VALUE; for (char k : map.keySet()) { int v = map.get(k); if (v == 1) { int tmp = s.indexOf(k); if (tmp < index) { index = tmp; } } } String rs = "-1"; if (index == Integer.MAX_VALUE) { System.out.println(rs); } else { System.out.println(cArr[index]); } } }