京东笔试 回文素数

只A了36%,没有找到原因。。
不是超时,是答案错误。。
求各位帮我看一下,,,费解呀

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int res = 0;
        for(int i = n;i<=m;i++){
            if(checkValid(i)) res++;
        }
        System.out.println(res);
        sc.close();
    }
    public static boolean checkValid (int num){
        String str = String.valueOf(num);
        for(int i = 0;i<str.length();i++){
            String temp = str.substring(0,i)+str.substring(i+1);
            int left = 0;
            while(temp.charAt(left)=='0'&&left<=temp.length()-1) left++;
            if(left>=temp.length()) continue;
            String curr = temp.substring(left);
            if(isPla(curr)&& strPrime(curr)) return true;
        }
        return false;

    }
    public static boolean strPrime(String str){
        int num = Integer.valueOf(str);
        return isPrime(num);
    }
    public static boolean isPrime (int num){
        if(num < 2) return false;
        if(num == 2) return true;
        int sqrt = (int) Math.sqrt(num);

        for(int i=2;i <= sqrt; i++){
            if(num%i==0) return false;
        }
        return true;

    }

    public static boolean isPla(String temp){
        int left = 0;
        int right = temp.length()-1;

        if(temp.length()==1) return true;
        while(left<right){
            char a = temp.charAt(left);
            char b = temp.charAt(right);
            if(a == b){
                left++;
                right--;
            }else{
                return false;
            }
        }
        return true;
    }

}
#笔试题目##京东#
全部评论
我也暴力,不过只有27😂
1 回复 分享
发布于 2020-08-06 22:04
我才18
1 回复 分享
发布于 2020-08-07 00:55
大概意思是: 一个数,去掉一位, 判断是否是 回文数&&素数。
点赞 回复 分享
发布于 2020-08-06 21:54
同样是A了36%
点赞 回复 分享
发布于 2020-08-06 22:12
我也是36,很怪异 ,我查了半小时还是没想起来漏了什么
点赞 回复 分享
发布于 2020-08-06 22:12
同36%
点赞 回复 分享
发布于 2020-08-06 22:16
+1
点赞 回复 分享
发布于 2020-08-06 22:18
我这儿有一个C++的代码,你要看吗,Java太长了
点赞 回复 分享
发布于 2020-08-06 22:29
1不是素数,判断加上后即可
点赞 回复 分享
发布于 2020-08-06 22:30
之前也是36,我把判断前置0的代码删掉,到了91
点赞 回复 分享
发布于 2020-08-06 22:41
其实可以打表😂
点赞 回复 分享
发布于 2020-08-06 22:56
10110,去掉第一位0110是,但数字应该是110不是
点赞 回复 分享
发布于 2020-08-06 23:23
同36  加了去第一位0之后没有变化 😂
点赞 回复 分享
发布于 2020-08-07 00:36
while(temp.charAt(left)=='0'&&left<=temp.length()-1) left++; 你这个语句不会越界吗?如果都是0的话
点赞 回复 分享
发布于 2020-08-07 09:11
我也36 奇怪得数字
点赞 回复 分享
发布于 2020-08-07 10:17
**血亏,我说怎么一直是18,我一直看的是有多少回文数,而不是回文素数,我日加个判断也许就过去了。。。。。。
点赞 回复 分享
发布于 2020-08-07 10:22
我想问一下,我写完代码后只测了自测数据通过了,然后点击了那个保存按钮,没有测全部数据,后台会帮我测全部数据吗?第一次用赛马那个平台,不会用,我一直按运行一直在跑自测数据,我还以为这个是平台自动帮你测的,看到你们个个AC多少多少,我感觉自己是不是白做了?😂😂😂
点赞 回复 分享
发布于 2020-08-07 10:56
如果n小于10,m大于10,就把n置为10,还有要解析前导0的情况
点赞 回复 分享
发布于 2020-08-07 14:56
我开始36,加了循环条件是i<sqrt&&i<num就a了
点赞 回复 分享
发布于 2020-08-07 15:06
小姐姐,我之前也是36,后来改到了91,原因是删除前置0的那里代码有了问题,你把这个地方改成这样就可以了while(left<=temp.length()-1 && temp.charAt(left)=='0') left++;
点赞 回复 分享
发布于 2020-08-08 23:19

相关推荐

ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
实习挂完提前批挂_提前批挂完秋招挂:我是来结束这个秋招的😤
点赞 评论 收藏
分享
评论
1
7
分享
牛客网
牛客企业服务