
最近更新的博客
- 华为 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" 满足要求,其不同字母的数量为 3,最接近于
本文介绍了华为OD机试中的一道字符串解密题目,涉及C++编程。给定加扰字符串和参考字符串,要求找到有效子串,满足字母数量最接近参考字符串且字典序最大。文章提供了示例输入输出及解题思路。
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



