Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาตัวเลขที่ใหญ่เป็นอันดับสองในสตริงโดยใช้ Python


สมมติว่าเรามีสตริงที่เป็นตัวอักษรและตัวเลข 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