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

P3816. 字母组合

中等通过率 61% · 提交 121 · 通过 74
回溯哈希表字符串枚举

每个数字对应多个字母,对应关系如下: 0:a,b,c 1:d,e,f 2:g,h,i 3:j,k,l 4:m,n,o 5:p,q,r 6:s,t 7:u,v 8:w,x 9:y,z 小慕正在开发一个电话号码转字母组合的实用工具。输入一串数字后,通过数字和字母的对应关系可以得到多个字母字符串(要求)。 屏蔽规则:串中的所有字母不能同时在输出的字符串中出现。例如屏蔽字符串是 abc,则要求生成的字符串中不能同时出现 a、b、c,但允许同时出现 a 和 b、a 和 c、b 和 c 等情况。 给定一个数字字符串和一个屏蔽字符串,输出所有可能的字符组合。 例如输入数字字符串 78 和屏蔽字符串 ux,输出结果为 uw,vw,vx。数字字符串 78 可以得到如下字符串:uw、ux、vw、vx。由于 ux 是屏蔽字符串,因此排除 ux,最终的输出是 uw、vw、vx。

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

输入描述

第一行输入为一串数字字符串,数字字符串中的数字不允许重复,数字字符串的长度大于 0,小于等于 5; 第二行输入是屏蔽字符,屏蔽字符的长度一定小于数字字符串的长度,屏蔽字符串中字符不会重复。

输出描述

输出可能的字符串组合 注:字符串之间使用逗号隔开,最后一个字符串后携带逗号

示例

示例 1

输入

78
ux

输出

uw,vw,vx,

示例 2

输入

78
x

输出

uw,vw,

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

看不懂题目?点开图解
字母组合生成与屏蔽示例 数字 7 → {u, v} 数字 8 → {w, x} 所有组合(笛卡尔积) uw ux (屏蔽) vw vx 排除 最终输出:uw, vw, vx,
写完代码点「提交」,将对全部测试用例判题。

向老师提问

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