题解 | #MP3光标位置#

MP3光标位置

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

这个题关键点就是想个好的数据结构去描述这个过程,我的数据结构是这样的,要显示这个屏幕的4首歌,那么我需要这个屏幕的第一首的位置,最后一首的位置以及所指向的歌的位置,有了这个思路,你根据题目的逻辑那么就可以写出来了,一些边界情况(特殊情况)比如指向的歌在第一首或最后一首你一一枚举进行考虑就ok了,记得看完给个赞,让我涨涨经验嘛(っ´Ι`)っ。

#include <algorithm>

using namespace std;

int main() {
    int m;
    while(cin>>m){
        string str;
        cin>>str;
        int n = str.size();
        int point=1,start = 1,end = 4;
        if(m<=4){
            start = 1;
            end = m;
            for(int i = 0;i<n;i++){
                if(str[i]=='U'){
                    if(point==1){
                        point = end;
                    }
                    else point--;
                }//if
                else if(str[i]=='D'){
                    if(point==end){
                        point = start;
                    }
                    else point++;
            }//if
        }//for
        
    }//最外层if,m<=4
        else{
            for(int i = 0;i<n;i++){
                if(str[i]=='U'){
                    if(point==1){
                        start = m-3;
                        end = m;
                        point = m;
                    }
                    else if(point==start){
                        start--;
                        point--;
                        end--;
                    }
                    else{
                        point--;
                    }
                }//if U
                else if(str[i]=='D'){
                    if(point==m){
                        point = 1;
                        start = 1;
                        end = 4;
                    }
                    else if (point==end){
                        end++;
                        point++;
                        start++;
                    }
                    else{
                        point++;
                    }
                }//else if D
            }//for
            
            
        }//m>10
        for(int i =start;i<=end;i++){
            cout<<i<<' ';
        }
        cout<<endl<<point<<endl;
}
}
全部评论

相关推荐

10-17 13:54
上海大学 运营
雾凇岛:这还说什么了,冲了兄弟们
点赞 评论 收藏
分享
哇哇的菜鸡oc:他这不叫校招offer,而是实习offer
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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