题解 | #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;
}