簡體   English   中英

在函數內調用函數時出錯 (Python)

[英]Error while calling functions within a function (Python)

我收到錯誤消息,說我定義的“makeShortest”函數存在語法錯誤。

  • 這里有什么問題?
  • 是否還有其他問題可能導致此功能在運行時無法運行?

def solution(A):
    idxDict = defaultdict(list)
    for i in range(len(A)):
        idxDict[A[i]].append(i)

    ans = -1
    A.sort()
    if len(A) <= 1:
        return ans

    hasAdj = 0
    for i in range(len(A) - 1):
        if A[i] != A[i + 1]:
            hasAdj += 1
            if hasAdj == 1:
                ans = makeShortest(idxDict[A[i]], idxDict[A[i + 1]])
            else:
                ans = min(ans, makeShortest(idxDict[A[i]], idxDict[A[i + 1]]))
    
    return ans

def makeShortest (list1, list2):
    ans = abs(list1[0] - list2[0])
    for k in range(len(list1)):
        for l in range(len(list2)):
            ans = min(ans, abs(list1[k] - list2[l])
    return ans

這行中的 ans2 是錯誤嗎?

ans = min(ans2, abs(list1[k] - idxDict[list2[l]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM