题解 | #MP3光标位置# 滑动窗口

MP3光标位置

https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15

#include <iostream>
using namespace std;

void downward(int& win_left, int& win_right, int& cur_pos, int num) {
    if (cur_pos == win_right) {
        if (win_right == num) {
            win_left = 1;
            win_right = num <= 4 ? num : 4;
            cur_pos = win_left;
        } else {
            ++win_left;
            ++win_right;
            ++cur_pos;
        }
    } else {
        ++cur_pos;
    }
}

void upward(int& win_left, int& win_right, int& cur_pos, int num) {
    if (cur_pos == win_left) {
        if (win_left == 1) {
            win_left = num <= 4 ? 1 : num - 3;
            win_right = num;
            cur_pos = win_right;
        } else {
            --win_left;
            --win_right;
            --cur_pos;
        }
    } else {
        --cur_pos;
    }
}

int main() {
    int num = 0;
    cin >> num;
    string op;
    cin >> op;

    int win_left = 1;
    int win_right = num <= 4 ? num : 4;
    int cur_pos = 1;
    for (char c : op) {
        if (c == 'D') {
            downward(win_left, win_right, cur_pos, num);
        } else if (c == 'U') {
            upward(win_left, win_right, cur_pos, num);
        }
    }
    for (int i = win_left; i <= win_right; ++i) {
        cout << i << " ";
    }
    cout << endl;
    cout << cur_pos << endl;
    return 0;
}

全部评论

相关推荐

09-08 20:19
门头沟学院 Java
如标题所见,想问一下27届大三想找实习9月份到10月份的机会多嘛?害怕错过最好的时机,鼠鼠也想占一个实习的好坑位
牛客20646354...:第一份实习还是看运气吧,我当时第一段实习靠点评和外卖找了好久才找到的。有了第一段后面就好找一些了,万事开头难
不给转正的实习,你还去吗
点赞 评论 收藏
分享
运营你豪哥:1.模板换一个,现在的模板基础信息加个照片已经占了30%的空间。 2.实习经历的描述,按时间倒序标注清楚,选2-3段和你求职意向契合的经历填写。 3.自我评价再改改,要不就删了;怎么感觉自我评价是在介绍你专业的培养体系,看不出重点要突出什么。
听劝,这个简历怎么改
点赞 评论 收藏
分享
08-20 16:51
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务