Java Google FooBar代码在IDE中运行,但未通过所有测试用例
我想解决的问题是‘嘿!我已经这么做了。” 问题陈述是,但这不是我真正的问题,因为我已经在IDE上创建了一个适合我的解决方案 当我在IDE中创建一个示例main来运行该文件时,我能够为这两个测试用例返回正确的值。然而,当我在foobar中验证它时,我没有通过所有测试用例,包括两个已知的用例 我试着只返回1,因为这是第二个测试用例的答案,可以通过三个测试用例。但是,当我运行代码时,却返回1;在第一行(使我所有的代码都无用),我仍然没有通过所有的测试用例。这意味着,出于某种原因,即使它没有进入我的代码,我也无法通过所有的测试用例。然而,谷歌没有告诉我任何关于编译错误的信息——它只是说我没有通过测试用例 代码如下:Java Google FooBar代码在IDE中运行,但未通过所有测试用例,java,Java,我想解决的问题是‘嘿!我已经这么做了。” 问题陈述是,但这不是我真正的问题,因为我已经在IDE上创建了一个适合我的解决方案 当我在IDE中创建一个示例main来运行该文件时,我能够为这两个测试用例返回正确的值。然而,当我在foobar中验证它时,我没有通过所有测试用例,包括两个已知的用例 我试着只返回1,因为这是第二个测试用例的答案,可以通过三个测试用例。但是,当我运行代码时,却返回1;在第一行(使我所有的代码都无用),我仍然没有通过所有的测试用例。这意味着,出于某种原因,即使它没有进入我的代码
public class Solution {
public static int solution(String n, int b) {
int tick = 0;
int[] arr = new int[1000000000];
int ans = 0;
while (true) {
tick++;
if (arr[Integer.parseInt(n)] == 0) {
arr[Integer.parseInt(n)] = tick;
} else {
ans = tick - arr[Integer.parseInt(n)];
//System.out.println(ans);
return ans;
}
char[] ar;
ar = n.toCharArray();
Arrays.sort(ar);
String i = String.valueOf(ar);
String j = "";
for (int a = (ar.length - 1); a >= 0; a--) {
j += String.valueOf(ar[a]);
}
//System.out.println(i + " " + j);
int x = Integer.valueOf(j);
int y = Integer.valueOf(i);
String a1 = Integer.toString(x);
String b1 = Integer.toString(y);
int p = 1;
int xx = 0;
int yy = 0;
p = 0;
for (int ii = a1.length() - 1; ii >= 0; ii--) {
xx += Integer.parseInt(Character.toString(a1.charAt(ii))) * Math.pow(b, p);
p++;
}
p = 0;
for (int ii = b1.length() - 1; ii >= 0; ii--) {
yy += Integer.parseInt(Character.toString(b1.charAt(ii))) * Math.pow(b, p);
p++;
}
String zz = String.valueOf(xx - yy);
String newn = Integer.toString(Integer.parseInt(zz), b);
for (int ii = 0; ii < n.length() - newn.length(); ii++)
newn = "0" + newn;
n = newn;
//System.out.println(n);
//f = true;
}
}
}
公共类解决方案{
公共静态int解决方案(字符串n,int b){
int tick=0;
int[]arr=新int[100000000];
int ans=0;
while(true){
tick++;
如果(arr[Integer.parseInt(n)]==0){
arr[Integer.parseInt(n)]=勾号;
}否则{
ans=tick-arr[Integer.parseInt(n)];
//系统输出打印LN(ans);
返回ans;
}
char[]ar;
ar=n.toCharArray();
数组。排序(ar);
字符串i=字符串的值(ar);
字符串j=“”;
对于(int a=(ar.length-1);a>=0;a--){
j+=String.valueOf(ar[a]);
}
//系统输出打印项次(i+“”+j);
int x=整数。值(j);
int y=整数。值(i);
字符串a1=整数。toString(x);
字符串b1=整数。toString(y);
int p=1;
int xx=0;
int-yy=0;
p=0;
对于(int ii=a1.length()-1;ii>=0;ii--){
xx+=Integer.parseInt(Character.toString(a1.charAt(ii))*Math.pow(b,p);
p++;
}
p=0;
对于(int ii=b1.length()-1;ii>=0;ii--){
yy+=Integer.parseInt(Character.toString(b1.charAt(ii))*Math.pow(b,p);
p++;
}
字符串zz=字符串的值(xx-yy);
字符串newn=Integer.toString(Integer.parseInt(zz),b);
对于(int ii=0;ii
我找到了答案,答案有两个方面——首先,我得到了错误,因为尽管foobar不需要通配符导入,但它们确实需要特定的导入(在本例中为java.util.array)。然而,当我这么做的时候,它仍然是低效的,所以我把它改成了一个简单的HashMap解决方案,这样我就能够通过所有的测试用例