【问题标题】:Python test cases fails in Google Foobar challengePython 测试用例在 Google Foobar 挑战中失败
【发布时间】:2021-02-19 16:12:05
【问题描述】:

我为数据科学学习了 Python,最近 Google 邀请我参加 foobar 挑战。第一个问题非常简单,我能够在本地机器上获得所需的输出,但 foobar 中甚至没有一个测试用例通过。请在下面找到问题和代码。

给定两个几乎相同的工作人员 ID x 和 y 列表,其中一个列表包含一个附加 ID,编写一个函数 solution(x, y) 来比较这些列表并返回附加 ID。

例如,给定列表 x = [13, 5, 6, 2, 5] 和 y = [5, 2, 5, 13],函数 solution(x, y) 将返回 6,因为列表 x 包含整数 6 而列表 y 不包含。给定列表 x = [14, 27, 1, 4, 2, 50, 3, 1] 和 y = [2, 4, -4, 3, 1, 1, 14, 27, 50],函数解( x, y) 将返回 -4,因为列表 y 包含整数 -4 而列表 x 不包含。

下面是我编写的第一个代码,它在我的本地机器上运行,但在 foobar 上的所有测试用例都失败了。

def solution(x,y):
    set1=set(x)
    set2=set(y)
    answer=list(set1^set2)
    for i in answer:
        print(i)

经过研究,我了解到 foobar 调用这个函数的方式是:solution.solution(x,y) 所以我尝试在类中定义一个类和方法,这在我的本地机器上再次运行良好,但像往常一样,foobar 中的所有测试用例都失败了。请找到我尝试过的代码的不同变体。下面的所有代码都可以在我的本地机器上与 foobar 的可见测试用例一起正常工作,但在 foobar 上却失败了。

请帮帮我。我只剩下 2 天的时间来解决这个问题。

class solution:
    
    def __init__(self,x,y):
        self.x=x
        self.y=y
        
    def solution(x,y):
        set1=set(x)
        set2=set(y)
        answer=list(set1^set2)
        for i in answer:
            print(i)
class solution:
     
    def solution(x,y):
        set1=set(x)
        set2=set(y)
        answer=list(set1^set2)
        for i in answer:
            print(i)
class solution:
    @staticmethod
    def solution(x,y):
        set1=set(x)
        set2=set(y)
        answer=list(set1^set2)
        for i in answer:
            print(i)

【问题讨论】:

    标签: python python-3.x oop


    【解决方案1】:

    函数 solution(x, y) 将返回 6

    仔细阅读说明非常通常是解决此类问题的一个很好的起点。 :) 我在您的代码中没有看到 return 语句 - 打印和返回之间存在很大差异!

    ...

    return i会解决你的很多问题

    【讨论】:

    • 感谢 Ben 的回答。错过了,我也多次尝试返回,即使这不适用于 foobar。另外,return (i) 只返回一个元素并关闭函数。 Print(i) 打印答案列表的所有元素。
    • 挑战不是指定只有一个额外的ID吗?如果是这样,那么您将永远不需要返回列表。说明还明确使用了“返回”一词,因此打印永远不会起作用。
    【解决方案2】:

    以下代码有效。

    def solution(x, y):
        set1 = set(x)
        set2 = set(y)
        unique = list(set1 ^ set2)
        return unique[0]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多