招行M-Geeker技术竞赛初赛

第一题
想问问大佬们我的解法为什么通过率只有85%?
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] num = new int[n];
String[] str = new String[n];
for(int i=0;i<n;i++){
num[i]=sc.nextInt();
str[i]=reverseString(transform(num[i]));
}
for(String s : str){
System.out.println(removeZero(s));
}
}
public static String transform(int num){
int bai = (int) Math.floor(num/100);
int shi = (int) Math.floor((num%100)/10);
int ge =num%10;
int value1 = 1<<4|bai;
int value2 = 1<<4|shi;
int value3 = 1<<4|ge;
String bs1 =Integer.toBinaryString(value1);
String bs2 =Integer.toBinaryString(value2);
String bs3 =Integer.toBinaryString(value3);
return bs1.substring(1)+bs2.substring(1)+bs3.substring(1);
}
public static String reverseString(String s){
int len = s.length();
char[] str = new char[len];
for(int i=len; i>0;i--){
str[len-i]=s.charAt(i-1);
}
return String.valueOf(str);
}
public static String removeZero(String str){
int len = str.length();
int i=0;
while(i<len&&str.charAt(i)=='0'){
i++;
}
return str.substring(i);
}
}




全部评论
我在交卷的前一秒反应过来输入0应该输出0
点赞 回复 分享
发布于 2020-08-03 16:37
单个0元素,输入0,输出0考虑了吗,另外感觉代码好长啊, 你可以字节先写一个[0000,0001,0010,0011,0100,0101,...,1001]这样的预定义数组 然后把int输入拆成charArray()拼接会好想很多
点赞 回复 分享
发布于 2020-08-03 16:37
没看你的代码,但是不是没考虑代号为0的情况应该输出0而不是空串?
点赞 回复 分享
发布于 2020-08-03 16:35
数字0输出“0”
点赞 回复 分享
发布于 2020-08-03 16:35

相关推荐

2025-12-15 11:27
门头沟学院 Java
哇哇的菜鸡oc:所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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