蓝桥题库每日一练 · 2026.07.13
7月13日 水下探测器有一个「水下深度」:u 指令让它上浮 …
水下探测器有一个「水下深度」:u 指令让它上浮 1 米(深度 −1),d 指令让它下沉 1 米(深度 +1)。但已在水面(深度 0)时 u 无效,已在湖底(深度 h)时 d 无效,遇到无效指令就跳过、继续下一条。给出湖深 h、初始深度 s 和一串 u/d 指令,求执行完后的水下深度。
样例
输入 9 1 / uduudd输出 2评分标准
- 30 分:完成题目样例与给出的第一个测试用例
- 40 分:再完成三个测试用例
- 50 分:完成全部测试用例
参考解法
先把题意理清:u 让深度减 1(上浮)、d 让深度加 1(下沉);但有两条边界——到了水面(深度 0)还 u,无效;到了湖底(深度 h)还 d,也无效。
做法就是老老实实「模拟」:从初始深度 s 出发,一个字符一个字符地读指令,但每次动之前先看看会不会越界,越界就跳过这条。
int main(){
int h,s; cin>>h>>s;
string cmd; cin>>cmd;
for(char c : cmd){
if(c=='u' && s>0) s--; // 不在水面才能上浮……此答案或解析由 AI 生成,请谨慎使用。
难度依赛考组别及等考级别粗略评估,仅供参考。