科大讯飞笔试Java代码求review

今天晚上参加科大讯飞的笔试,两道编程题全是本地能通过,线上0%,请大佬们帮我看一下问题出在哪里,谢谢。

第一题:提取字符串中的数字并排序
import java.io.*;
import java.util.*;

public class Main41 {
public static void main(String[] args) throws IOException {
Scanner sc=new Scanner(System.in);
String line="";
while(sc.hasNext()){
line=line+sc.next();
}

char[] charArr = line.toCharArray();
Set<Integer> set=new TreeSet<Integer>();
boolean flag=false;
for(int i=0;i<charArr.length;i++){
if(charArr[i]>='0'&&charArr[i]<='9'){
set.add(Integer.parseInt(charArr[i]+""));
flag=true;
}
}
if(flag){
int len=set.size();
Object[] arr =set.toArray();
for(int i=0;i<arr.length;i++){
int m=(int)arr[i];
System.out.print(m);
}
}else{
System.out.println(-1);
}

}
}

第二题:通过二分查找获取19的位置
import java.io.*;
import java.util.*;

public class Main5 {
public static void main(String[] args) throws IOException {
Scanner sc=new Scanner(System.in);
String line1="";
while(sc.hasNext()){
line1=line1+sc.next();
}

String line2=line1.replace("{", "");
String line=line2.replace("}", "");
String[] strArr = line.split(",");
int[] arr=new int[strArr.length];
for(int i=0;i<strArr.length;i++){
arr[i]=Integer.parseInt(strArr[i]);
}
int result=binary(arr,0,arr.length-1,19);
System.out.println(result+1);
}

public static int binary(int[] arr,int low,int high,int key){
int mid=(low+high)/2;
if(arr[mid]==key){
return mid;
}else if(low>high){
return -1;
}else if(key>arr[mid]){
return binary(arr,mid,high,key);
}else{
return binary(arr,low,mid,key);
}
}
}

#科大讯飞##笔试题目##Java#
全部评论
我也是,本地没问题,牛客编译全是0%,输出改来改去都不行,火大
1 回复 分享
发布于 2019-08-16 19:38
不能有输入,直接就是测试用例输入
点赞 回复 分享
发布于 2019-08-16 19:40
我也是,第一题一直本地通过,但是为什么通不过 。。。。。?????真是无语,最后***改了
点赞 回复 分享
发布于 2019-08-16 19:40
。。原来不止我一个人
点赞 回复 分享
发布于 2019-08-16 19:42
我记得用java提交编程题代码的类名必须是Main啊兄弟
点赞 回复 分享
发布于 2019-08-16 19:45

相关推荐

评论
点赞
5
分享

创作者周榜

更多
牛客网
牛客企业服务