30,419
社区成员
发帖
与我相关
我的任务
分享问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。 输入格式 输入一行,包含一个正整数n。 输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。 样例输入 52 样例输出 899998 989989 998899
n = int(input())
for i in range(10000,1000000):
i=str(i)
sum=0
if i == i[::-1]:
for j in i:
sum+=int(j)
if sum==n:
print(i)
问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串, 它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是:交换两个相邻的字符 例如mamad 第一次交换 ad : mamda 第二次交换 md : madma 第三次交换 ma : madam (回文!完美!) 输入格式 第一行是一个整数N,表示接下来的字符串的长度(N <= 8000) 第二行是一个字符串,长度为N.只包含小写字母 输出格式 如果可能,输出最少的交换次数。 否则输出Impossible 样例输入 5 mamad 样例输出 3
n=int(input())
str_=list(input())
count=flag=0
m=n-1
for i in range(m):
for k in range(m,i-1,-1):
if k==i:
if n%2==0 or flag==1:
print('Impossible')
exit()
flag=1
count+=int(n/2)-i
elif str_[k]==str_[i]:
for j in range(k,m):
str_[j],str_[j+1]=str_[j+1],str_[j]
count+=1
m-=1
break
print(count)