本题要求从多个箱子中找出与给定密码相匹配的箱子编号。每个箱子内包含一个字符串,我们需要提取出所有字母字符,忽略大小写后按升序排列,若与给定密码完全一致,则返回该箱子的编号。如果没有匹配的箱子,则返回 -1
。
这道题的核心思路是:首先从每个箱子字符串中提取出所有的字母字符,忽略大小写并按升序排列,形成一个新的字符串。然后将这个新字符串与给定的密码进行比较,若完全一致,则认为该箱子匹配密码,返回其编号。如果没有匹配的箱子,则返回 -1
。具体操作包括提取字母、转换大小写、排序,并通过逐个比较箱子中的密码与目标密码来实现匹配。
密码提取:首先,我们需要提取每个箱子字符串中的字母字符,并忽略其他字符(如数字、标点、空格等)。对提取出的字母,忽略大小写并按照升序排列。
匹配判断:如果提取出的字母字符串与给定的密码字符串完全一致(包括字母顺序和字符种类),则认为匹配成功,返回该箱子的编号。
小强正在参加《密室逃生》游戏,当前关卡要求找到符合给定 密码 K(升序的不重复小写字母组成) 的箱子,并给出箱子编号,箱子编号为 1 N 。
每个箱子中都有一个 字符串 s ,字符串由大写字母、小写字母、数字、标点符号、空格组成,需要在这些字符串中找到所有的字母,忽略大小写后排列出对应的密码串,并返回匹配密码的箱子序号。
提示:满足条件的箱子不超过 1 个。
第一行为 key 的字符串,
第二行为箱子 boxes ,为数组样式,以空格分隔
箱子 N 数量满足 1≤N≤10000, s 长度满足 0≤s.length≤50, 密码为仅包含小写字母的升序字符串,且不存在重复字母, 密码 K 长度 1≤K.length≤26
返回对应箱子编号
如不存在符合要求的密码箱,则返回 −1 。
箱子中字符拼出的字符串与密码的匹配忽略大小写,且要求与密码完全匹配,如密码 abc 匹配 aBc ,但是密码 abc 不匹配 abcd
输入
abc
s,sdf134 A2c4b
输出
2
说明
第 2 个箱子中的 Abc ,符合密码 abc 。
输入
abc
s,sdf134 A2c4bd 523[]
输出
-1
说明
第 2 个箱子中的 Abcd ,与密码不完全匹配,不符合要求