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

โปรแกรมหาตัวเลขที่เพิ่มขึ้นติดกันในช่วง start-end ใน Python


คำอธิบายปัญหา

กำหนด start และ end หาตัวเลขในช่วง [start, end] ที่ **หลักต่างๆ เพิ่มขึ้นติดกัน** (เช่น 5678 ✓, 169 ✗)

ตัวอย่าง

start = 10, end = 150 → Output: [12, 23, 34, 45, 56, 67, 78, 89, 123]

ขั้นตอนการแก้ปัญหา

  1. สตริงอ้างอิง s = "123456789"
  2. สร้าง substring ทุกช่วงของ s: s[i:j] (i < j)
  3. แปลงเป็น int, ตรวจสอบอยู่ใน [start, end]
  4. เรียงลำดับคืนค่า

การตนการทำงาน (Python)

def solve(start, end):
    s = "123456789"
    a = []
    for i in range(9):
        for j in range(i + 1, 10):
            x = int(s[i:j])
            if start <= x <= end:
                a.append(x)
    return sorted(a)

start = 10
end = 150
print(solve(start, end))  # Output: [12, 23, 34, 45, 56, 67, 78, 89, 123]

อินพุต / เอาต์พุต

Input:  10, 150
Output: [12, 23, 34, 45, 56, 67, 78, 89, 123]