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

โปรแกรมสร้างตัวเลข n lexicographic ตัวแรกใน python


สมมติว่าเรามีตัวเลข n เราต้องหาตัวเลข n ตัวแรกที่เรียงตามลำดับศัพท์

ดังนั้น หากอินพุตเป็น n =15 ผลลัพธ์จะเป็น [1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้:

  • นับ :=1
  • ans :=รายการที่มีการนับองค์ประกอบเดียว
  • ในขณะที่ขนาดของ ans
  • นับ :=นับ * 10
  • ในขณะที่นับ> n ทำ
    • จำนวน :=ผลหารของจำนวน / 10
    • นับ :=นับ + 1
    • ในขณะที่การนับ mod 10 เหมือนกับ 0, do
      • จำนวน :=ผลหารของจำนวน / 10
    • ใส่จำนวนที่ส่วนท้ายของ ans
  • คืนสินค้า
  • ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น:

    โค้ดตัวอย่าง

    class Solution:
       def solve(self, n):
          count = 1
          ans = [count]
    
          while len(ans) < n:
             count *= 10
             while count > n:
                count = count // 10
                count += 1
                while count % 10 == 0:
                   count = count // 10
                   ans.append(count)
                return ans
    
    ob = Solution()
    n = 15
    print(ob.solve(n))
    
    

    อินพุต

    15

    ผลลัพธ์

    [1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]