我编写了以下代码来解决主题“将整数值重新排列为最大回文数”
例:
输入数据为485,输出应为“非回文数”
输入数据为445,输出应为454
输入数据为24266,输出应为62426(最大回文,而不是26462)
请看看并帮助我纠正此问题
我遇到的问题:
输入112->仅返回2
谢谢!
def largest_palindrome(self, number):
a = list(str(number))
duplicate = [item for item, count in collections.Counter(a).items() if count > 1]
if (round(len(a)/2,0) != len(duplicate)):
print 'Not palindrome number'
else:
uniq = []
max_item = a[0]
for i in range (1, len (a)):
if a[i] > max_item:
max_item = a[i]
uniq=uniq.append(max_item)
return uniq
python大神给出的解决方案
import itertools
print "".join(max(x for x in itertools.permutations("100") if x == tuple(reversed(x))))
换句话说:找到所有排列,选择回文,找到最大的排列,然后显示出来。