题解 | #MP3光标位置#

MP3光标位置

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

#include<string.h>
int main()
{
    int n=0;
    while(scanf("%d",&n)!=EOF)
    {
        char str[101];
        scanf("%s",str);//命令长度
        int len=strlen(str);
        int arr[151];//歌曲长度
        for(int i=0;i<n;i++)
        {
            arr[i]=i+1;
        }
        /*for(int i=0;i<n;i++)
        {
            printf("%d",arr[i]);
        }
        printf("\n");*/
        int temp[4];
        int p=0;
        if(n<=4)//判断输入的歌曲数目是否小于4
        {
            for(int i=0;i<n;i++)
            {
                temp[i]=i+1;
            }
            for(int i=0;i<len;i++)
            {
                if(str[i]=='U')
                {
                    if(arr[p]==temp[0])
                    {
                        p=n-1;
                    }
                    else{
                        p=p-1;
                    }
                }
                else if(str[i]=='D')
                {
                    if(arr[p]==temp[n-1])
                    {
                        p=0;
                    }
                    else
                    {
                        p=p+1;
                    }
                }
            }
            for(int i=0;i<n;i++)
            {
                printf("%d ",temp[i]);
            }
            printf("\n");
            printf("%d\n",p+1);
        }
        else
        {
            for(int i=0;i<4;i++)
            {
                temp[i]=i+1;
            }
            for(int i=0;i<len;i++)
            {
                if(str[i]=='U')
                {
                    if(arr[p]==1)
                    {
                        p=n-1;
                        for(int j=0;j<4;j++)
                        {
                            temp[j]=arr[p-3+j];
                        }
                    }
                    else
                    {
                        p=p-1;
                        if(arr[p]<temp[0])
                        {
                            for(int j=0;j<4;j++)
                            {
                                temp[j]=arr[p+j];
                            }
                        }
                    }
                }
                else if(str[i]=='D')
                {
                    if(arr[p]==n)
                    {
                        p=0;
                        for(int j=0;j<4;j++)
                        {
                            temp[j]=arr[p+j];
                        }
                    }
                    else
                    {
                        p=p+1;
                        if(arr[p]>temp[3])
                        {
                            for(int j=0;j<4;j++)
                            {
                                temp[j]=arr[p-3+j];
                            }
                        }
                    }
                }
            }
            for(int i=0;i<4;i++)
            {
                printf("%d ",temp[i]);
            }
            printf("\n");
            printf("%d\n",p+1);
        }
    }
    return 0;
}

全部评论

相关推荐

11-14 16:13
已编辑
重庆科技大学 测试工程师
Amazarashi66:不进帖子我都知道🐮❤️网什么含金量
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务