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

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

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

题解

解题思路,遍历整个数组:字符串总长度(a) - 将当前字符使用空("")来替换后长度(b) = 当前字符出现的次数(sum)。

上面使用字符替换:a - b = sum;

  • 如果 sum == 1 表示只出现一次,打印并结束循环,后面即使出现一次的也不用去管了

  • 如果整个数组都遍历完了,sum 都 >= 2 那么,打印 -1;

代码

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();
            int len = str.length(); // 字符串总长度
            char res = '0'; // 存放结果的字符
            for (int i = 0; i < str.length(); i++) {
                char ch = str.charAt(i);
                String s = String.valueOf(ch);
                int newLen = str.replaceAll(s, "").length();
                if ((len - newLen) == 1) {
                    res = ch;
                    break; // 存在只出现一次的字符,退出循环输出结果
                }
            }

            // 打印结果
            if ('0' == res) {
                System.out.println(-1);
            } else {
                System.out.println(res);
            }
        }
    }
}
全部评论
如果输入的字符串以'0'开头并且只有一个0,你这个会输出-1,要改下
点赞 回复 分享
发布于 2023-01-11 13:07 江苏

相关推荐

没关系现在见到了、
真的很糟糕:见过国王的offer吗
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

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