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

ตรวจสอบว่าเป็นไปได้ที่จะสร้างสตริง palindrome จาก N ที่กำหนดใน Python


สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่าเราสามารถสร้างสตริงตัวพิมพ์เล็กตามตัวอักษรจากตัวเลขนั้นได้หรือไม่ และตรวจสอบว่าสตริงนั้นเป็น palindrome หรือไม่ ที่นี่เราจะใช้เฉพาะอักขระจาก a ถึง j, [a =0, b =1... j =9] ดังนั้นหากตัวเลขคือ 42 สตริงย่อย "ec" จะถูกพิมพ์จนถึง 6 (4+2) อักขระ "ececec" ให้ตรวจสอบว่านี่คือ palindrome หรือไม่

ดังนั้น หากอินพุตเป็น n =43 เอาต์พุตจะเป็น True สตริงจะเป็น "ededede" และนี่คือ palindrome

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

  • temp :=สตริงว่าง
  • s :=n เป็นสตริง
  • ตัวอักษร :=อักขระทั้งหมดจาก a ถึง j
  • ผลรวม :=0
  • substr :=สตริงว่าง
  • สำหรับฉันในช่วง 0 ถึงขนาด s - 1 ทำ
    • d :=s[i] เป็นตัวเลขหลัก
    • substr :=substr เชื่อมตัวอักษร[d]
    • sum :=sum + d
  • ในขณะที่ขนาดของอุณหภูมิ <=ผลรวม ทำ
    • temp :=temp concatenate substr
  • temp :=temp[จากดัชนี 0 ถึงผลรวม - 1]
  • คืนค่า จริง เมื่อ temp เป็น 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))

อินพุต

43

ผลลัพธ์

True