สมมติว่าเรามีตัวเลข n; เราต้องตรวจสอบสตริงที่มีความยาว n+1 ตัวพิมพ์เล็ก เพื่อให้อักขระที่ตำแหน่งใดๆ ควรมีขนาดใหญ่กว่าอักขระถัดไปในเชิงพจนานุกรม
ดังนั้น หากอินพุตเท่ากับ 15 เอาต์พุตจะเป็น ponmlkjihgfedcba
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- temp_str :=สตริงว่าง
- พิเศษ :=n mod 26
- ถ้าพิเศษ>=1 แล้ว
- สำหรับ i ในช่วง 26 -(พิเศษ + 1) ถึง 25 ทำ
- temp_str :=temp_str + str[i]
- จำนวน :=n / 26 (การหารจำนวนเต็ม)
- สำหรับฉันในช่วง 1 ที่จะนับ + 1 ทำ
- สำหรับ j ในช่วง 0 ถึง 25 ทำ
- temp_str :=temp_str + str[j]
- สำหรับ j ในช่วง 0 ถึง 25 ทำ
- สำหรับ i ในช่วง 26 -(พิเศษ + 1) ถึง 25 ทำ
- ส่งคืน temp_str
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def show_string(n, str): temp_str = "" extra = n % 26 if (extra >= 1) : for i in range( 26 - (extra + 1), 26): temp_str += str[i] count = n // 26 for i in range(1, count + 1) : for j in range(26): temp_str += str[j] return temp_str n = 15 str = "zyxwvutsrqponmlkjihgfedcba" print(show_string(n, str))
อินพุต
15
ผลลัพธ์
ponmlkjihgfedcba