iT邦幫忙

0

Leetcode 的輸入條件看不懂

  • 分享至 

  • xImage

各位前輩好, 小弟近期開始在練習刷題
比較常使用像是 Codewars 這個網站練習
以往都是使用簡單的 Function 作為解題的輸入, 像是:

def fibonacci(x):
    # 前兩項給定 x(0) = 0, x(1) = 1
    if x < 2:
        return x
    return fibonacci(x-1) + fibonacci(x-2)

我的輸入就是簡單的 x 等於多少就好


但最近轉到 Leetcode 網站發現一些問題, 以下面這第21題為例:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
    return answer

它題目給的輸入有兩個 input, list1 與 list2
這邊我就不明白要怎麼在 Function 內引用這兩個 list
爬文找了一下好像有這個問題的人也不多, 不知道前輩們是否能說明一下或給資源去研究呢?
非常感謝, 附上我這題的 error 跟使用以前 Function 的做法

https://ithelp.ithome.com.tw/upload/images/20220716/20123641eM5IqYDPtN.png

# leetcode.21
def merge_two_list(list1, list2):
    ans_list = []
    while True:
        if len(list1) == 0:
            ans_list.append(list2.pop(0))
        elif len(list2) == 0:
            ans_list.append(list1.pop(0))
        elif list1[0] < list2[0]:
            ans_list.append(list1.pop(0))
        else:
            ans_list.append(list2.pop(0))
        if (len(list1) or len(list2)) == 0:
            break
    return ans_list
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
ko_min
iT邦新手 4 級 ‧ 2022-07-16 18:35:25

那個錯誤訊息是排版錯誤吧

jihong620 iT邦新手 5 級 ‧ 2022-07-16 18:50:15 檢舉

感謝回覆, 這個錯誤確實是這個問題...我再重新發一次圖

ko_min iT邦新手 4 級 ‧ 2022-07-16 18:58:34 檢舉

題目給的是linked list的head
所以只是個Node,不是list,是不能用len的喔

jihong620 iT邦新手 5 級 ‧ 2022-07-16 20:08:09 檢舉

原來如此, 我還想說它的input是兩個list
那我只能用node的方式來解這題了, 謝謝您的回答

0
只是個野人
iT邦新手 5 級 ‧ 2022-07-18 14:27:10

他雖然上面寫形式是list,但它系統再輸入已經自動轉化為node形式,所以說如果要用就必須由head,然後head.next形式開始往下個節點去找。沒辦法直接使用List的function。

我要發表回答

立即登入回答