最近更新的博客
- 华为 od 2023 | 什么是华为 od,od 薪资待遇,od 机试题清单
- 华为 OD 机试真题大全,用 Python 解华为机试题 | 机试宝典
- 【华为 OD 机试】全流程解析+经验分享,题型分享,防作弊指南
- 华为 od 机试,独家整理 已参加机试人员的实战技巧
华为 OD 机试题解:字符串解密,加扰字符串
题目描述
给定两个字符串 string1
和 string2
。
-
string1
是一个被加扰的字符串,string1
由小写英文字母('a'~'z')
和数字字符('0'~'9')
组成,而加扰字符串由'0'~'9'
、'a'~'f'
组成,string1
里面可能包含 0 个或多个加扰子串,剩下可能有 0 个或多个有效子串,这些有效子串被加扰子串隔开。 -
string2
是一个参考字符串,仅由小写英文字母('a'~'z')
组成。
你需要在 string1
字符串里找到一个有效子串,这个有效子串要同时满足下面两个条件:
-
这个有效子串里不同字母的数量不超过且最接近于
string2
里不同字母的数量,即小于或等于 string2 里不同字母的数量的同时且最大。 -
这个有效子串是满足条件(1)里的所有子串(如果有多个的话)里字典序最大的一个。
如果没有找到合适条件的子串的话,请输出 "Not Found"
示例
输入字符串 string1
为 "thisisanewday111forme"
,输入字符串 string2
为 "good"
。
string1
里有效子串和加扰子串分割后可表示为:"thisis"+"a"+"n"+"e"+"w"+"da"+"y"+"111f"+"orm"+"e"
,
去除加扰子串 ("a"、"e"、"da"、"111f"、"e")
后的有效子串候选为 ("thisis","n","w""y","orm")
。
输入字符串 string2
里不同字母的数量为 3('g'、'o'、'd')
,从有效子串候选里可以找出 "orm"
满足