招行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);
}
}
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);
}
}