题解 | #坐标移动#

坐标移动

https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

#include <iostream>
#include <string>
using namespace std;
bool isNumber(string s) {
	for (auto & ss : s) {
		if (ss<'0' || ss > '9') return false;
	}
	return true;
}
int main() {
	int x = 0, y = 0;
	string s;
	cin >> s;
	for (int i = 0; i < s.length(); ++i) {
		if (s[i] == ';') continue;
		else {
			int num = 0;
			string tmp = "";
			while (s[i + num] != ';') {
				tmp = tmp + s[i + num];
				++num;
			}
			if (num > 3 || num < 2) {
				i += num;
				continue;
			}
			string tmp_2 = tmp.substr(1);
			if (isNumber(tmp_2)) {
				int number = stoi(tmp_2);
				if (tmp[0] == 'A' && number > 0 &&  number < 100) {
					x -= stoi(tmp_2);
				}else if (tmp[0] == 'S' && number > 0 && number < 100) {
					y -= stoi(tmp_2);
				}else if (tmp[0] == 'W' && number > 0 && number < 100) y += stoi(tmp_2);
				else if (tmp[0] == 'D'&& number > 0 && number < 100) x += stoi(tmp_2);
			}
			
			i += num;
		}
	}
	cout << x << "," << y;
	return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

12-06 16:17
济宁学院 Java
点赞 评论 收藏
分享
牛客60022193...:大厂都招前端,他们觉得AI能替代前端,可能他们公司吊打btaj吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务