Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem có thể tạo chuỗi palindrome từ N đã cho bằng Python hay không

Giả sử chúng ta có một số n. Chúng ta phải kiểm tra xem chúng ta có thể tạo một chuỗi chữ thường theo thứ tự chữ cái từ số đó hay không và kiểm tra xem chuỗi đó có phải là palindrome hay không. Ở đây chúng ta sẽ chỉ lấy các ký tự từ a đến j, [a =0, b =1 ... j =9]. Vì vậy, nếu số là 42, chuỗi con "ec" sẽ được in cho đến 6 (4 + 2) ký tự "ececec" thì hãy kiểm tra xem đây có phải là palindrome hay không.

Vì vậy, nếu đầu vào là n =43, thì đầu ra sẽ là True, chuỗi là "ededede" và đây là palindrome.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • temp:=chuỗi trống
  • s:=n dưới dạng chuỗi
  • chữ cái:=tất cả các ký tự từ a đến j
  • sum:=0
  • substr:=chuỗi trống
  • đối với tôi trong phạm vi từ 0 đến kích thước là s-1, hãy thực hiện
    • d:=s [i] dưới dạng chữ số
    • substr:=substr các chữ cái nối [d]
    • sum:=sum + d
  • while kích thước của temp <=sum, do
    • temp:=temp nối tiếp substr
  • temp:=temp [từ chỉ số 0 đến tổng - 1]
  • trả về true khi nhiệt độ là palindrome, ngược lại là false

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

43

Đầu ra

True