预定程序员 2023-12-09 17:52 采纳率: 65.9%
浏览 5

openjudge找出第一个只出现一次的字符

问题:在eclipse上面测试运行正确,但是复制到openjudge上面测试不通过

img




```java

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str=scan.nextLine();
        char[] arr=str.toCharArray();
        boolean flag=true;
        for(int i=0;i<arr.length-1;i++) {
            flag=true;
            for(int j=0;j<arr.length;j++) {
                if(i!=j) {
                    if(arr[i]==arr[j]) {
                        flag=false;
                        break;
                    }
                }
            }
            if(flag==true) {
                System.out.println(arr[i]);
                break;
            }
        }
        if(flag==false) {
            System.out.println("no");
        }
    }
}


  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-09 21:02
    关注

    【以下回答由 GPT 生成】

    import java.util.Scanner;
    import java.util.LinkedHashMap;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            String str = scan.nextLine();
            LinkedHashMap<Character,Integer> map = new LinkedHashMap<>();
            char[] arr = str.toCharArray();
    
            for (char c : arr) {
                if (map.containsKey(c)) {
                    map.put(c, map.get(c) + 1);
                } else {
                    map.put(c, 1);
                }
            }
    
            for (char c : arr) {
                if (map.get(c) == 1) {
                    System.out.println(c);
                    return;
                }
            }
    
            System.out.println("no");
        }
    }
    

    我已经替你修改了代码。这个修改使用了LinkedHashMap来统计每个字符出现的次数,并且遍历字符串找到第一个只出现一次的字符,并输出。希望这次修改能够在openjudge上正确运行。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 12月9日