สมมติว่าเรามีสตริงที่เป็นตัวอักษรและตัวเลข s เราต้องหาตัวเลขที่ใหญ่เป็นอันดับสองที่ปรากฏใน s หากไม่มีสตริงดังกล่าว ให้คืนค่า -1
ดังนั้น หากอินพุตเป็น s ="p84t3ho1n" ผลลัพธ์จะเป็น 4 เนื่องจากตัวเลขคือ [1,3,4,8] ดังนั้นตัวเลขที่ใหญ่เป็นอันดับสองคือ 4
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
lst :=ชุดใหม่
-
สำหรับแต่ละ s ทำ
-
ถ้า let ไม่ใช่พยัญชนะแล้ว
-
แทรก let เป็นจำนวนเต็มใน lst
-
-
-
ถ้าขนาด lst <=1 แล้ว
-
กลับ -1
-
-
ส่งคืนองค์ประกอบสุดท้ายที่สองหลังจากเรียงลำดับ lst
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
def solve(s): lst = set() for let in s: if not let.isalpha(): lst.add(int(let)) if len(lst) <= 1: return -1 return sorted(list(lst))[len(lst) - 2] s = "p84t3ho1n" print(solve(s))
อินพุต
"hello", "hlelo"
ผลลัพธ์
True