题目内容:
在无限宽广的二维平面直角坐标系中,小明在(0,0)处操作无人机。小明操作无人机的命令有以下4种。 L将当前无人机的位置作为(x,y)移动到(x-1,y) R将当前无人机的位置作为(x,y)移动到(x+1,y) U将当前无人机的位置作为(x,y)移动到(x,y+1) D将当前无人机的位置作为(x,y)移动到(x,y-1) 无人机被若干命令操作后,移动到了某个地方。小明记忆中对无人机操作序列为字符串S,但有几个地方忘记了,用?表示。?可能是L、R、U、D中的任意一个。 无人机和小明的距离以无人机的位置为(x,y)为准,用曼哈顿距离表示,即|x|+|y|。给一个整数T,如果T=1请求距离最大值,如果T=2请求距离最小值。
代码:
#include<bits/stdc++.h>
using namespace std;
int x=0,y=0,s=0;
string n;
int main(){
cin>>n;
cin>>s;
int len=n.length();
for(int i=0;i<len;i++){
if(n[i]=='L') x-=1;
else if(n[i]=='R') x+=1;
else if(n[i]=='U') y+=1;
else if(n[i]=='D') y-=1;
else{
if(s==1){
if(x<y) y+=1;
else x+=1;
}else{
if(x<y) y-=1;
else x-=1;
}
}
}
if(x<0) x=abs(x);
if(y<0) y=abs(y);
cout<<x+y<<endl;
return 0;
}
请问有什么错吗?