【问题标题】:Foobar Error: Error compiling the code, please try again later [closed]Foobar 错误:编译代码时出错,请稍后再试 [关闭]
【发布时间】:2017-11-21 09:39:35
【问题描述】:

我在这个程序中发现两个数组中缺少的元素时出错,我是 Java 新手。

package com.google.challenges; 
public class Answer {
    public static int answer(int[] x, int[] y) { 
        for (int n : x)  {
            if (!isPresent(n, y)) {
                return n;
            }
        }
        for (int n : y) {
            if (!isPresent(n, x)) {
                return n;
            }
        }
         return 0;
     }
     private static boolean isPresent(int n, int[] b){
        for (int i : b) {
            if (n == i) {
                return true;
            }
        }
        return false;
    }
}

【问题讨论】:

  • 为什么在方法块外返回 0?这是无效的java代码
  • 在哪一行出现编译错误?如果是最后一个返回0; } 这不是您的代码的一部分,那么这是一个真正的编译错误,因为该语句不是任何方法的一部分。
  • 由于函数返回一个整数,如果 for 循环中的两个 if 语句都失败,我只需返回一个零值
  • 这句话“两个数组中的缺失元素”令人困惑,你的意思是第一个数组中存在的元素,反之亦然,或者你的意思是两者的交集?
  • 输入:(int list) x = [13, 5, 6, 2, 5] (int list) y = [5, 2, 5, 13] 输出:(int) 6 输入: (int list) x = [14, 27, 1, 4, 2, 50, 3, 1] (int list) y = [2, 4, -4, 3, 1, 1, 14, 27, 50] 输出: (int) -4 在两个给定数组中都没有找到的数字

标签: java arrays element


【解决方案1】:

我也收到此错误消息。我相信 Google 端存在不允许 Java 代码编译的问题。我看过其他关于这个问题的报道。

这是我对 Google 的问题的证据:用简单的 return 0; 替换方法 answer 中的所有代码消除了对代码中的错误是否导致它的所有疑问。在这种情况下,几乎没有改变的骨架代码应该成功编译,测试应该运行,并且测试应该失败(除非正确的结果是0)。而是显示一条错误消息:“编译代码时出错,请稍后再试。”

我找到的唯一解决方案是在 Python 中进行。开始挑战时,我懂 Java,不懂 Python,但转换起来非常容易。

【讨论】:

  • 2018 年 7 月,Google 仍未解决此问题 >:(
猜你喜欢
  • 2013-01-09
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-27
  • 1970-01-01
相关资源
最近更新 更多