coding-coworking-club / python-spring-2021

ccClub Python Spring 2021
https://www.ccclub.io/course/2021Spring
23 stars 6 forks source link

[General] 道路路牌 #528

Closed shanhao1204 closed 3 years ago

shanhao1204 commented 3 years ago

提交連結

https://judge.ccclub.io/status/68646b8066cb7df5570704881c4fa942

程式碼

lst=input().split()
class RoadSign():
    def __init__(self,name,next):
        self.name=name
        self.next=next
        self.val=name[0]
ans=[head.name]
def regularize_roadsign(head):
    if head.next==None:
        return
    if head.next.val==ans[-1][0] and int(head.next.name[1:])>int(ans[-1][1:]):
        ans.append(head.next.name)
    regularize_roadsign(head.next)
    return ' '.join(ans)
print(regularize_roadsign(head))

錯誤訊息

問題描述

思路是如果下一個值的第一個國字等於當前的值,且下一個值後面的數字小於等於當前的值,就加到串列裡面,用遞迴跑到最後一個,當下一個值等於None,就return 想請問上面的做法為何會runtime error兩筆測資都對,是class那邊錯還是def regularize_roadsign(head)這邊錯,如果不能外面用一個串列紀錄第一個路牌的國字,跟上一個字的值,要用哪個方法,迴圈嗎。另外輸出其實看不太懂要輸出什麼,題目是說整理好的路牌的第一個 RoadSign class object,但Sample Output 1又是整理好的全部路牌。

TJ72 commented 3 years ago

這題只需要在 Judge 上實作 classfunction 就可以了,不需要再做輸入和輸出等其他部分