本专栏正在更新中,一天更新15道题
华为od最新D卷题库题解目录:
题目描述:
给定m (0<m<=30) 个字符(a-z),从中取出任意字符(每个字符只能用一次)拼接成长度为n(0<n<=5)的字符串,要求相同的字符不能相邻,计算出给定的字符列表能拼接出多少种满足条件的字符串,输入非法或者无法拼接出满足条件的字符串则返回0.
输入描述
给定的字符列表和结果字符串长度,中间使用空格(" ")拼接
输出描述
满足条件的字符串个数
用例1:
aab 2
输出:2 (只能构成 ab, ba)
用例2:
abc 2
输出:6 (只能构成 ab ac ba bc cb ca)
题解:类似全排列,数组有重复值(需要对结果去重),剪枝:相同元素不能相邻,树枝采用use去重
const rl = require("readline").createInterface({ input: