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

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

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

解决方法

1、方法一:统计每个字符出现次数
2、方法二:通过indexOf()和lastIndex)f()判断字符第一次和最后一次出现的下标是否相等

(1)统计字符

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String line = scan.nextLine();
        Map<Character, Integer> map = new HashMap<>();
        for (int i = 0; i < line.length(); i++) {
            char ch = line.charAt(i);
            map.put(ch, map.getOrDefault(ch, 0) + 1);
        }
        // 遍历
        String ans = "-1";
        for (int i = 0; i < line.length(); i++) {
            char ch = line.charAt(i);
            if (map.get(ch) == 1) {
                ans = "" + ch;
                break;
            }
        }
        System.out.println(ans);
    }
}

(2)比较前后出现字符下标

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String line = scan.nextLine();
        // 遍历
        String ans = "-1";
        for (int i = 0; i < line.length(); i++) {
            char ch = line.charAt(i);
            if (line.indexOf(ch) == line.lastIndexOf(ch)) {
                ans = "" + ch;
                break;
            }
        }
        System.out.println(ans);
    }
}
全部评论

相关推荐

oppo 应用软开 22*15+0.5*12
拿到了ssp完美:真的坎坷,但是你至少拿到这么多offer了!
点赞 评论 收藏
分享
10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务