检查是否可以用给定的数字 N 在 Python 中创建一个回文字符串


假设我们有一个数字 n。我们必须检查是否可以从该数字创建一个字母顺序的小写字符串,并检查该字符串是否为回文。这里我们只取从 a 到 j 的字符,[a = 0, b = 1... j = 9]。因此,如果数字是 42,则将打印子字符串“ec”直到 6(4+2)个字符“ececec”,然后检查这是否为回文。

因此,如果输入类似于 n = 43,则输出将为 True,字符串为“ededede”,这是回文。

为了解决这个问题,我们将遵循以下步骤:

  • temp := 空字符串
  • s := n 作为字符串
  • letters := 从 a 到 j 的所有字符
  • sum := 0
  • substr := 空字符串
  • 对于 i 从 0 到 s 的大小 - 1,执行
    • d := s[i] 作为数字数字
    • substr := substr 连接 letters[d]
    • sum := sum + d
  • 当 temp 的大小 <= sum 时,执行
    • temp := temp 连接 substr
  • temp := temp[从索引 0 到 sum - 1]
  • 当 temp 为回文时返回 true,否则返回 false

示例

让我们看看以下实现以获得更好的理解:

现场演示

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

更新于: 2021 年 1 月 18 日

433 次查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告