สมมติว่ามีตัวเลข n ต้องการหาตัวเลข n ตัวแรกที่เรียงตามลำดับเล็กซิโครกราฟิก (lexicographic order)
ตัวอย่าง: n = 15 ผลลัพธ์คือ [1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]
ขั้นตอนการแก้ปัญหา
count = 1,ans = [count]- วนลูป بينما
len(ans) < n:count *= 10- วนลูป بينما
count > n:count //= 10count += 1- วนลูป بينما
count % 10 == 0:count //= 10 - เพิ่ม
countเข้าans
- คืนค่า
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]