1.回文串
奇数个数>=2,则不能构成回文串(从左右侧读取结果均相同)。
n=int(input())
pal=list(input())
count=flag=0 #count计数,flag判断是否已经有一个单独的奇个数的字符了
#奇个数的字符不能超过1
n=n-1
for i in range(n):#从头遍历
for k in range(n,i-1,-1): #从后面往前一直到i寻找和pal[i]相同的pal[k]
if k==i:
if n%2==0 or flag==1:
print('impossible')
exit()
flag=1
count+=int(n/2)-1
elif pal[k]==pal[i]:
for j in range(k,n):#找到相同的,进行交换
pal[j],pal[j+1]=pal[j+1],pal[j]
count+=1
n-=1
break
print(count)
2.阶层计算
n=int(input())
jc=1
for i in range(1,n+1):
jc=jc*i
print(jc)
输入10,则输出为
3.哈夫曼树
n=int(input())
value=0
list=list(map(int,input().split())) #将输入转为列表
for i in range(n-1):
list=sorted(list) #顺序排序
value+=list[0]+list[1] #value加最小两个
value_list=list[0]+list[1] #合并
list.pop(0) #删除第一个
list.pop(0) #再删除第二个
list.append(value_list) #添加
print(value)