回文字符串

请找出大于 10 的最小的一个十进制数,该数的二进制、八进制、十进制表示都是回文字符。
例:
十进制:9
八进制:11
二进制:1001
9<10 所以 9 不符合要求。

1
2
3
4
5
6
7
8
x = 11
while True:
if str(x) == str(x)[::-1] \
and str(oct(x))[2:] == str(oct(x))[2:][::-1] \
and str(bin(x))[2:] == str(bin(x))[2:][::-1]:
print(x)
break
x = x +2

输出为 585

使用 format

1
2
3
4
5
6
7
8
x = 11
while True:
if str(x) == str(x)[::-1] \
and format(x, 'b') == format(x, 'b')[::-1] \
and format(x, 'o') == format(x, 'o')[::-1]:
print(x)
break
x = x +2

相关知识
python 字符串反转

  • 字符串切片
  • list reverse 方法
  • for 循环或列表推导
  • 递归

python 内置函数
https://docs.python.org/zh-cn/3.7/library/functions.html

format(num, ‘b’)
format(num, ‘o’)
format(num, ‘x’)
返回不带前缀的进制转换