tôi có một danh sách của các quốc gia, và tôi muốn có con đường dài nhất của các quốc gia trong đó mỗi quốc gia được chọn phải bắt đầu bằng chữ giống như kết thúc phần tử trướcchuỗi dài nhất của các yếu tố từ danh sách bằng Python
nations = ['albania','andorra','austria','belarus','belgium','bosnia and herzegovina',
'bulgaria','croatia','czech republic','denmark','estonia',
'finland','france','germany','greece','hungary',
'iceland','ireland','italy','latvia','liechtenstein','lithuania','luxembourg',
'macedonia','malta','moldova','monaco','montenegro','netherlands',
'norway','poland','portugal','romania','russia',
'san marino','serbia','slovakia','slovenia','spain','sweden', 'switzerland',
'ukraine','united kingdom','vatican city']
chain('spain')
>>>['spain', 'netherlands', 'slovenia', 'andorra', 'austria', 'albania']
Tôi đã thử cách này, nhưng nó không hoạt động
def chain(naz):
initial = naz[-1]
initials=[]
res = set()
res.add(naz)
for i in nations:
if i.startswith(initial):
initials.append(i)
for j in initials:
nations.remove(j)
res.add(j)
chain(j)
return res
Bất kỳ đề xuất nào?
tôi n cách nào nó không hoạt động? – Marcin
nếu tôi giữ quốc gia.remove (j), lỗi là ValueError: list.remove (x): x không có trong danh sách, nếu tôi loại bỏ đoạn mã RuntimeError: độ sâu đệ quy tối đa vượt quá khi gọi đối tượng Python – fege
Vui lòng đặt đầy đủ ngăn xếp dấu vết cho cả hai lỗi trong câu hỏi của bạn và sử dụng nhận xét để xác định dòng mã liên quan. – Marcin