题解 | 找出字符串中第一个只出现一次的字符

#牛客创作赏金赛# #2025,我想......# #刷题我是认真的#

解题思路:

  1. 先将统计字符出现的次数,放入到map中
  2. 在遍历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]);
        }
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务