下面是我的答案
得分76.9
好垃圾
#include <stdio.h>
#include <vector>
#include <string>
using namespace std;
#define DOWN 0
#define RIGHT 1
#define UP 2
#define LEFT 3
class DrawLines
{
public:
vector<string> execute(vector<string> &str);
};
vector<string> DrawLines::execute(vector<string> &strs)
{
vector<string> result(20);
int x=0,y=0;
int dx=0,dy=0;
int i,j;
int direct=DOWN;//方向
int num=0;
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
{
result[i]+=".";
}
}
for(i=0;i<strs.size();i++)
{
if(strs[i][0]=='L')
{
direct++;
direct%=4;
}
switch(direct)
{
case DOWN: dx=0;dy=1;break;
case RIGHT: dx=1;dy=0;break;
case UP: dx=0;dy=-1;break;
case LEFT: dx=-1;dy=0;break;
default:break;
}
if(strs[i][0]=='F')
{
if(strlen(strs[i].c_str())==10)
num=(strs[i][8]-48)*10+strs[i][9]-48;
else if(strlen(strs[i].c_str())==9)
num=strs[i][8]-48;
if(num!=0)result[0][0]='X';
for(j=0;j<num;j++)
{
x+=dx;
y+=dy;
result[y][x]='X';
}
}
}
return result;
}