题目描述:
给定M(0<M<=30)个字符(a-z),从中取出任意字符(每个字符只能用一次)拼接成长度为N(0<N<=5)的字符串,要求相同的字符不能相邻,计算出给定的字符列表能拼接出多少种满足条件的字符串,输入非法或者无法拼接出满足条件的字符串则返回0。
输入描述:
给定的字符列表和结果字符串长度,中间使用空格(" ")拼接
输出描述:
满足条件的字符串个数
补充说明:
示例1
输入:
abc 1输出:
3说明:
给定的字符为a,b,c,结果字符串长度为1,可以拼接成a,b,c,共3种
示例2
输入:
dde 2输出:
2说明:
给定的字符为dde,结果字符串长度为2,可以拼接成de,ed,共2种
解题思路:考察对数组、递归的理解和运用。
import itertools
n=input().split()
s=n[0]
flag=0
if len(n)!=2:
flag=1
elif not n[1].isdigit():
flag=1
if len(s)<=