题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include <bits/stdc++>
using namespace std;
int main()
{
//initialize
string str;
int x = 0, y = 0;
cin >> str;
while (true)
{
//initialize
int i = 0,Lon = 0;
string mov;
string len;
//break
if ( str.find(';') == str.npos )
{
break;
}
i = str.find(';');
mov = str.substr(0, i); //移动指令获取
len = str.substr(1, (i - 1)); //位移量获取
Lon = str.length() - (i + 1); //移动指令长度
if ( mov.length() == 2 && mov.at(1) >= '0' && mov.at(1) <= '9' || mov.length() == 3 && mov.at(1) >= '0' && mov.at(1) <= '9' && mov.at(2) >= '0' && mov.at(2) <= '9')
{
switch ( mov.at(0) )
{
case 'A': x = x - stoi(len); break;
case 'D': x = x + stoi(len); break;
case 'S': y = y - stoi(len); break;
case 'W': y = y + stoi(len); break;
default:break;
}
}
str = str.substr((i+1), Lon); //下一条指令
}
cout << x << ',' << y << endl; //输出
}
韶音科技公司氛围 650人发布
查看15道真题和解析