题解 | #MP3光标位置#
MP3光标位置
https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15
#include <stdio.h>
#include <string.h>
int Min(int a,int b){
if(a>b) return b;
return a;
}
int main() {
int zongshu=0,n_cz=0,list_head=1,gb=1;
char caozuo[101] = {0};
scanf("%d\n%s",&zongshu,caozuo);
n_cz = strlen(caozuo);
for(int i=0;i<n_cz;i++){
switch(caozuo[i]){
case 'U':
if((gb==list_head)&&(gb==1)){
if(zongshu<4){
gb = zongshu;
break;
}
list_head = zongshu - 3;
gb = zongshu;
break;
}
if((gb==list_head)&&(zongshu>4)) list_head --;
gb --;
break;
case 'D':
if((gb==Min(list_head+3,zongshu))&&(gb==zongshu)){
if(zongshu<4){
gb = 1;
break;
}
list_head = 1;
gb = 1;
break;
}
if((gb==Min(list_head+3,zongshu))&&(zongshu>4)) list_head ++;
gb ++;
break;
}
}
if(zongshu<4){
for(int i=0;i<zongshu;i++) printf("%d ",i+1);
printf("\n%d",gb);
}else
printf("%d %d %d %d\n%d",list_head,list_head+1,list_head+2,list_head+3,gb);
}
查看5道真题和解析