题目内容

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

解题思路

首先将每个箱子中的字符串全部转换为小写。然后提取箱子中的所有字母(忽略其他字符)。
对提取出的字母进行排序。将排序后的字母组合成一个字符串。判断提取并排序后的字符串是否与输入的密码匹配。

参考代码

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;int main() {string key;getline(cin, key);string box_string;getline(cin, box_string);istringstream box_stream(box_string);vector<string> boxes;string temp;while (box_stream >> temp) {boxes.push_back(temp);}int matched_box = -1;for (int i = 0; i < boxes.size(); i++) {// 转换为小写transform(boxes[i].begin(), boxes[i].end(), boxes[i].begin(), ::tolower);// 提取箱子中的所有字母(忽略其他字符串)vector<char> chars;for (char c : boxes[i]) {if (c >= 'a' && c <= 'z') {chars.push_back(c);}}// 对提取出的字母进行排序sort(chars.begin(), chars.end());string sorted_chars(chars.begin(), chars.end());// 判断提取并排序后的字符串是否与输入的密码匹配if (sorted_chars == key) {matched_box = i + 1;}}cout << matched_box;return 0;
}

2023华为OD机试真题C++实现【密室逃生游戏】相关推荐

  1. 【华为OD机试真题 python】密室逃生游戏【2022 Q4 | 100分】

    ■ 题目描述 [密室逃生游戏] 小强增在参加<密室逃生>游戏,当前关卡要求找到符合给定 密码K(升序的不重复小写字母组成) 的箱子, 并给出箱子编号,箱子编号为 1~N . 每个箱子中都有 ...

  2. 2023华为od机试真题 C语言 实现【数大雁】

    一群大雁往南飞,给定一个字符串记录地面上的游客听到的大雁叫声,请给出叫声最少由几只大雁发出. 具体的: 1.大雁发出的完整叫声为"quack",因为有多只大雁同一时间嘎嘎作响,所以 ...

  3. 2023华为OD机试真题B卷【战场索敌】C++

    题目 有一个大小是N*M的战场地图,被墙壁 '#' 分隔成大小不同的区域,上下左右四个方向相邻的空地 '.',属于同一个区域,只有空地上可能存在敌人'E',请求出地图上总共有多少区域里的敌人数小于K. ...

  4. 2023华为od机试真题B卷【跳房子2】Java 实现

             所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目 跳房子,也叫跳飞机,是一种世界性的儿童游戏游戏参与 ...

  5. 2023华为od机试真题B卷【跳格子2】Java 实现

             所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目 小明和朋友玩跳格子游戏,有 n 个连续格子组成的圆 ...

  6. 2023华为od机试真题B卷【阿里巴巴找黄金宝箱(II)】Java 实现

             所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目 一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了 ...

  7. 2023华为od机试真题B卷【阿里巴巴找黄金宝箱(III)】Java 实现

             所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目 贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强 ...

  8. 华为OD机试真题 JS 实现【九宫格游戏 / 三阶积幻方】【2023 Q1 | 200分】

       所有题目均有四种语言实现.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目   题目描述: 九宫格又是一款广为流传的游戏,起源于河图洛书. 游戏规则是 ...

  9. 华为OD机试真题-相同数字的积木游戏 【2023.Q1】

    题目描述 小华和小薇一起通过玩积木游戏学习数学.他们有很多积木,每个积木块上都有一个数字,积木块上的数字可能相同.小华随机拿一些积木挨着排成一排,请小薇找到这排积木中数字相同目所处位置最远的2块积木块 ...

  10. 2023华为od机试真题B卷【文件目录大小】Java 【100%通过率】

             所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目 一个文件目录的数据格式为: 目录id,本目录中文件 ...

最新文章

  1. Linux哪个和Windows很像,Linuxfx - 这套Linux操作系统看起来和Windows 10非常类似
  2. 自定义Activity的启动关闭动画
  3. File Explore 中data权限修改,实体机
  4. 阿里云redis设置缓存方法
  5. PHP里10个鲜为人知但却非常有用的函数
  6. Oracle入门(十二E)之视图操作
  7. 上班从不迟到,生病不敢请假,加班唯命是从,明明已经很拼命了,为什么还是缺钱?...
  8. .net 事务嵌套存储过程事务的处理方法
  9. HBase二级索引方案
  10. 2020.10.1--PS--画笔色彩模式、画笔预设、自定义画笔
  11. (pyqt5 qml qt quick) QAbstractTableModel.columnCount() is abstract and must be overridden
  12. 解决SQL Server日志空间满的方法
  13. HH的项链(树状数组)区间内不同的数量
  14. [NOIP2016]天天爱跑步 题解(树上差分) (码长短跑的快)
  15. 十问旷视印奇、唐文斌:AI企业都在经历「死亡之谷」
  16. thinkphp5.1使用云之讯
  17. TeamViewer 连接问题
  18. word调整页脚距离 顶端和低端的距离(叫页边距)
  19. nao机器人拆解_如何获得明了清晰的人生
  20. 外贸客户开发的新方式—领英精灵

热门文章

  1. 小程序怎么用阿里图库(可改变颜色)
  2. JavaScript 强制类型转换一(String)
  3. php开发环境搭建套件,PHP开发环境套件与自定义安装方法介绍
  4. 完美解决 开机无法启动 提示0xc000000e
  5. VS+QT双击ui文件用Designer打开时出现未指定错误/无法打开XX.ui文件
  6. win7系统 设置宽带连接网络共享 出现错误 无法启用共享访问 错误代码:0x80004005:未指定错误
  7. 关于modbus rtu协议的CRC(循环冗余校验)在线计算
  8. 在mysql 8.0.22 运行load data local 从本地文本导入数据
  9. Java基础面试题系列
  10. okio 的使用及源码分析