LeetCode 和本地 Python 执行的差异[已关闭]

问题描述 投票:0回答:1

** 更新:这是我的一个拼写错误,但我整个早上都在努力解决这个问题。有时,如此明显的事情即使就在您面前,也可能让您无法理解。

我已经解决了 LeetCode 上的一个问题,并且尝试运行我在本地为该问题开发的相同解决方案。我看到一个奇怪的问题,LeetCode 完美地运行了我的解决方案,并且所有测试用例都通过了,但是当我运行相同的解决方案时,只需稍微修改一下以在命令行中提供输入并显示结果,我就不会得到相同的输出。

调试后,我发现 if 语句的“not in”部分与 LeetCode 网站的工作方式不同。我希望能得到对这个问题的解释,因为我通常在本地编写 LeetCode 问题,并且不确定是什么导致了这个问题。

Python版本:Python 3.11.5

电脑:Windows 11

LeetCode解决方案:

class Solution:
    def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:
        nums1 = set(nums1)
        nums2 = set(nums2)
        tmp1 = []
        tmp2 = []

        for i in nums1:
            if i not in nums2:
                tmp1.append(i)

        for i in nums2:
            if i not in nums1:
                tmp2.append(i)
                
        return [tmp1, tmp2]

输出:[[1,3],[4,6]]

本地解决方案:

class Solution:
    def findDifference(self, nums1, nums2):
        nums1 = set(nums1)
        nums2 = set(nums2)
        tmp1 = []
        tmp2 = []

        for i in nums1:
            if i not in nums2:
                tmp1.append(i)

        for i in nums2:
            if i not in nums1:
                tmp2.append(i)

        return [tmp1, tmp2]


nums1 = [1,2,3]
nums2 = [2,4,6]
execute = Solution()
print(execute.findDifference(nums1, nums1))

输出:[[], []]

感谢您提前回复。

python set
1个回答
2
投票

您的打印语句中有一个拼写错误,两个参数都是nums1

      print(execute.findDifference(nums1, nums1))

应该是:

      print(execute.findDifference(nums1, nums2))
© www.soinside.com 2019 - 2024. All rights reserved.