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

#牛客创作赏金赛# #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]);
        }
    }
}

全部评论

相关推荐

湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务