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

ตรวจสอบว่าสร้าง Palindrome String จากตัวเลข N ได้หรือไม่ด้วย Python


มีตัวเลข n สร้าง String จาก a-j (a=0,...,j=9) เช่น 42 -> "ec" แล้ว Repeat จนครบ Sum of Digits ตัวอักษร แล้วเช็ค Palindrome

เช่น Input n = 43 Output True (Digits 4,3 -> "ed", Sum=7 -> "ededede" เป็น Palindrome)

ขั้นตอนแก้:

  • แปลง n เป็น String ดึง Digits
  • Map Digits -> Letters a-j สร้าง Substr
  • Sum Digits = Total Length
  • Repeat Substr จนครบ Total Length ตัดให้พอดี
  • เช็ค Palindrome

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

def isPalindrome(s):
    return s == s[::-1]

def solve(n):
    temp = ""
    s = str(n)
    letters = "abcdefghij"
    sum = 0
    substr = ""
    for i in range(len(s)):
        d = int(s[i])
        substr += letters[d]
        sum += d
    while len(temp) <= sum:
        temp += substr
    temp = temp[:sum]
    return isPalindrome(temp)

n = 43
print(solve(n))

Input

43

Output

True