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

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

http://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()){
            String str = sc.next();
            char[] arr = str.toCharArray();
            HashMap<Character, Integer> map = new HashMap<>();
            // hashmap记录
            for (int i = 0; i < str.length(); i++) {
                map.put(str.charAt(i),map.getOrDefault(str.charAt(i),0)+1);
            }
        // 遍历,根据数组来,数组元素是有明确顺序的
        for (int i = 0; i < arr.length; i++) {
            if(map.get(arr[i])==1){  // 如果找到值为1
                System.out.println(arr[i]);
                break; // 只用输出一个即可
            // 假如元素的value >1且是最后一个元素,则说明不存在
            }else if(map.get(arr[i]) > 1 && (i==arr.length-1)){
                System.out.println(-1);
            }

        }

        }
    }
}
全部评论

相关推荐

ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务