蓝桥题库每日一练 · 2026.07.13
7月13日 水下探测器有一个「水下深度」:u 指令让它上浮 …
水下探测器有一个「水下深度」:u 指令让它上浮 1 米(深度 −1),d 指令让它下沉 1 米(深度 +1)。但已在水面(深度 0)时 u 无效,已在湖底(深度 h)时 d 无效,遇到无效指令就跳过、继续下一条。给出湖深 h、初始深度 s 和一串 u/d 指令,求执行完后的水下深度。输入:第一行是 h 和 s,用空格隔开(0≤h≤100,0≤s≤h);第二行是一串只由字母 u、d 组成的指令,长度不超过 100。输出:一个整数,即执行完所有指令后的水下深度。
样例
输入
9 1
uduudd输出 2评分标准
- 30 分:完成题目样例与给出的第一个测试用例
- 40 分:再完成三个测试用例
- 50 分:完成全部测试用例
参考解法
先把题意理清:u 让深度减 1(上浮)、d 让深度加 1(下沉);但有两条边界——到了水面(深度 0)还 u,无效;到了湖底(深度 h)还 d,也无效。
做法就是老老实实「模拟」:从初始深度 s 出发,一个字符一个字符地读指令,但每次动之前先看看会不会越界,越界就跳过这条。
开头两行 #include <bits/stdc++.h> 和 using namespace std; 是 C++ 程序的固定开场:有了它们,cin(读入)、cout(输出)、string(一串字符)这些工具才能直接拿来用,少了就编译不过。
#include <bits/stdc++.h>
using namespace std;
int main(){……此答案或解析由 AI 生成,请谨慎使用。
难度依赛考组别及等考级别粗略评估,仅供参考。