题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
模拟
#include <iostream>
#include <string>
using namespace std;
int num(string s)
{
int res = 0;
for (int i = 0; i < s.size(); i ++ )
if (s[i] >='A' && s[i] <= 'Z') return -112;
for (int i = 0; i < s.size(); i ++ )
res = res*10 + s[i] - '0';
return res;
}
int main() {
long long a = 0, b = 0;
string s = "", tmp ="";
cin >> s;
for (int i = 0; i < s.size(); i ++ )
{
if (s[i] != ';')tmp += s[i];
else {
if (tmp[0] == 'A'||tmp[0]=='W'||tmp[0]=='S'||tmp[0]=='D')
{
int ss = tmp.size();
string s1 = "";
for (int j = 1; j < ss; j ++) s1 += tmp[j];
int ans = num(s1);
if (ans != -112)
{
if (tmp[0] == 'A')a-=ans;
else if(tmp[0] == 'D')a+=ans;
else if (tmp[0] == 'W')b+=ans;
else if (tmp[0] == 'S')b-=ans;
}
}
tmp = "";
}
}
cout << a << "," << b << endl;
}
查看21道真题和解析