蓝桥题库每日一练 · 2026.07.13

7月13日 水下探测器有一个「水下深度」:u 指令让它上浮 …

C++编程题参考难度 ★★☆☆☆蓝桥杯第十一届 选拔赛 · 已用
水下探测器有一个「水下深度」: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 生成,请谨慎使用。
难度依赛考组别及等考级别粗略评估,仅供参考。