科大讯飞笔试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);
}
}
}
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#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);
}
}
}