AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3808. 字符串拼接

中等通过率 58% · 提交 955 · 通过 550
回溯哈希表字符串枚举

小慕手头有 `M (0<M<=30)` 个字符,全部来自小写字母 `a-z`。他打算从中挑选一些字符(),拼成一个长度为 `N (0<N<=5)` 的字符串。规则是:拼出来的字符串中,。现在小慕想知道,给定这些字符,一共能拼出多少种满足条件的字符串。如果,或者无论如何都无法拼出符合条件的字符串,则返回 `0`。

提示:带虚线的词点一下有通俗解释。

输入描述

给定的字符列表和结果字符串长度,中间使用空格(" ")拼接

输出描述

满足条件的字符串个数

示例

示例 1

输入

aabc 3

输出

8

说明:给定的字符为aabc,结果字符串长度为3,可以拼接成abc,acb,bac,bca,cba,cab,aba,aca,共8种

示例 2

输入

abc 1

输出

3

说明:给定的字符为abc,结果字符串长度为1,可以拼接成a,b,c,共3种

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
双机位A-字符串拼接 图解(示例:aabc 长度3) 字符池 a (2个) b (1个) c (1个) 每个字符只能用一次 回溯构造 从字符池中选字符 依次填入位置 相同字符不能相邻 直到填满N=3个位置 例如:a→b→c 得到 abc a→b→a 得到 aba 结果 所有合法 字符串 计数 8
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「字符串拼接」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。