华为机试:MP3光标位置

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> music;
    for (int i = 1; i <= n; i++) {
        music.push_back(i);
    }
    int len = 4 <= music.size() ? 3 : music.size() - 1;
    int i = 0, j = len, c = 0;
    string oper;
    cin >> oper;
    for (char op : oper) {
        if (op == 'U') {
            if (c > i && c <= j) {
                c = c - 1;
            }
            else {
                if (i == 0) {
                    c = n - 1;
                    i = c - len;
                    j = c;
                }
                else {
                    i = i - 1;
                    j = j - 1;
                    c = i;
                }
            }
        }
        else {
            if (c >= i && c < j) {
                c = c + 1;
            }
            else {
                if (j == n - 1) {
                    c = 0;
                    i = c;
                    j = c + len;
                }
                else {
                    i = i + 1;
                    j = j + 1;
                    c = j;
                }
            }
        }
    }
    for (int k = i; k <= j; k++) {
        cout << music[k] << " ";
    }
    cout << endl;
    cout << music[c] << endl;
    return 0;
}

全部评论

相关推荐

02-12 17:30
已编辑
字节跳动_实习生(实习员工)
要怎么办呢牛:我觉得大厂日常实习最大的意义就是给自己背书,一个好公司的实习就像一个好学历似的,能够给自己增加一个标签,让别人觉得你可以。(至于真正实习干了啥,这个感觉并不太重要)。当然一家之言,仅供参考。另外,楼主已经很强了,实习毕业双双拿下,已经领先好多好多人了,羡慕啊
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务