题解 | #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;
}
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务