华为OD机试-密室逃生游戏-2022Q4 A卷-Py/Java/JS

小强正在参加《密室逃生》游戏,当前关卡要求找到符合给定密码K(升序的不重复小写字母组成)的箱子,
并给出箱子编号,箱子编号为1~N。
每个箱子中都有一个字符串s,字符串由大写字母、小写字母、数字、标点符号、空格组成,
需要在这些字符串中找到所有的字母,忽略大小写后排列出对应的密码串儿,并返回匹配密码的箱子序号。
提示:
满足条件的箱子不超过1个
输入描述
第一行为key的字符串,
第二行为箱子boxes,为数组样式,以空格分隔箱子

N数量满足1≤N≤10000,
s长度满足0≤s.length≤50,
密码为仅包含小写字母的升序字符串,且不存在重复字母,密码K长度K.length,1≤K.length≤26
输出描述
返回对应箱子编号
如不存在符合要求的密码箱,则返回-1
示例一
输入

abc
sdf134 A2c4b
输出

2
说明
第2个箱子中的Abc,符合密码abc
示例二
输入

abc
sdf134 A2c4bd 523[]

输出

-1

说明
第2个箱子中的Abcd,与密码不完全匹配,不符合要求
备注
箱子中字符拼出的字符串与密码的匹配忽略大小写,且要求与密码完全匹配,如密码abc匹配aBc,但是密码abc不匹配abcd

Java 代码

1

Python代码

import functools
 
key = input()
boxes = [x for x in input().split(" ")]
 
res = -1
for i in range(len(boxes)):
    #先全部转为小写字母
    lower = boxes[i].lower()
    char_set = []
    for  c in lower:
        if (c >= 'a' and c <= 'z'):
            char_set.append(c)
    char_set.sort()
    if (len(char_set) == len(key)):
        if (key == "".join(char_set)):
            res = i+1
 
print(res)

JS代码

function main(key, boxes) {
    let res = -1
    for (let i=0;i= 'a' && c <= 'z'){
                char_set.push(c)
            }
        }
        char_set.sort()
 
        if (char_set.length == key.length){
            if (key == char_set.join("")){
                res = i+1
            }
        }
    }
 
 
    console.log(res)
}
 
main("abc",["sdf134", "A2c4b"])

你可能感兴趣的:(java,javascript,华为,python)