检查是否可以用给定的数字 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
广告