สมมติว่าเรามีสตริง alphanumeric s เราต้องหาตัวเลขตัวที่สองที่ใหญ่ที่สุดที่ปรากฏใน s ถ้าไม่มีให้คืน -1
เช่น s = "p84t3ho1n" ผลลัพธ์คือ 4 เพราะตัวเลขที่มีคือ [1,3,4,8] ตัวที่สองใหญ่สุดคือ 4
ขั้นตอนการแก้ปัญหา
- lst = set()
- วนลูปแต่ละ let ใน s:
- ถ้า let ไม่ใช่ตัวอักษร (คือตัวเลข): ใส่ int(let) เข้า lst
- ถ้า len(lst) ≤ 1: คืน -1
- คืนค่าตัวที่สองจากท้ายหลังเรียง lst (sorted(lst)[len(lst)-2])
ตัวอย่างโค้ด
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))
ข้อมูลเข้า
"p84t3ho1n"
ข้อมูลออก
4