题解 | #MP3光标位置#

MP3光标位置

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

#include<stdio.h>
#include<string.h>
int main(void)
{
    int num=0;
    scanf("%d",&num);
    char str[101]={0};
    scanf("%s",&str);
    //int a[160]={0};
    int b[4]={0};
    /*for(int i=0;i<num;i++)
    {
        a[i]=i+1;
    }*/
    for(int i=0;i<num&&i<4;i++)
    {
        b[i]=i+1;
    }
    //printf("%d\n",b[3]);
    int len=strlen(str);
    int j1=1;//实际光标位置
    int j2=0;//窗口第一个在b数组中位置
    for(int i=0;i<len;i++)
    {
       if(str[i]=='U')
       {
           if(j1==1&&b[0]==1&&num>=4)
           {
               j1=num;
               b[0]=num-3;
               b[1]=num-2;
               b[2]=num-1;
               b[3]=num;
               j2=3;
           }
           else if(j1==1&&b[0]==1&&num<4)
           {
               j1=num;
               j2=num-1;
           }
           else if(j1!=1&&j2==0)
           {
               for(int k=0;k<4;k++){b[k]--;}
               j2=0;
               j1--;
           }
           else if(j1!=1&&j2!=0)
           {
               j1--;
               j2--;
           }
       }
        else if(str[i]=='D')
        {
            if(j1==num&&b[3]==num&&num>=4)
           {
               j1=1;
               b[0]=1;
               b[1]=2;
               b[2]=3;
               b[3]=4;
               j2=0;
           }
           else if(j1==num&&b[3]==0&&num<4)
           {
               j1=1;
               j2=0;
           }
           else if(j1!=num&&j2==3)
           {
               for(int k=0;k<4;k++){b[k]++;}
               j2=3;
               j1++;
           }
           else if(j1!=num&&j2!=3)
           {
               j1++;
               j2++;
           }
        }
    }
    for(int i=0;i<4&&i<num;i++)
    {
        printf("%d ",b[i]);
    }
    printf("\n");
    printf("%d",j1);//第二行输出
    return 0;
}

全部评论

相关推荐

10-29 19:45
吉林大学 Java
从零开始数:自我评价没有必要写,但是看起来你应该是学了csdiy的一些课程,可以在专业技能里面写上自己比较熟悉操作系统和计网,但如果你是找Java的话,把第一个项目换了吧,现在看起来有点四不像。 无论是黑马点评或者说做个轮子项目,刷题和八股也搞起来吧,而且也没必要等到寒假,最近就可以开始找,找到就偷偷实习呗,别被逮到就行了。
点赞 评论 收藏
分享
10-09 17:17
已编辑
门头沟学院 Java
活泼的代码渣渣在泡池...:同学你好,我也是学院本,后天要面这个亚信科技,是实习,请问问题都啥样呀,我项目就做了网上的,这是第一次面试
投递多益网络等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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