题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include <stdio.h> #include <string.h> int main() { char str[10000] = {0}; fgets(str, 10002, stdin); int way[10000][2] = {0, 0}; int len = strlen(str); int a = 0; for (int i = 0; i < len; i++) { // printf("1"); if (str[i] != ';' && str[i + 1] != ';' && str[i + 2] != ';' && str[i + 3] == ';' && (str[i - 1] == ';' || i == 0)) { //printf("1"); if (str[i] == 'A' && str[i + 1] >= '0' && str[i + 1] <= '9' && str[i + 2] >= '0' && str[i + 2] <= '9' ) { // printf("1"); way[a][0] = -((str[i + 1] - '0') * 10 + str[i + 2] - '0') ; a++; } else if (str[i] == 'S' && str[i + 1] >= '0' && str[i + 1] <= '9' && str[i + 2] >= '0' && str[i + 2] <= '9' ) { way[a][1] = -((str[i + 1] - '0') * 10 + str[i + 2] - '0') ; a++; } else if (str[i] == 'D' && str[i + 1] >= '0' && str[i + 1] <= '9' && str[i + 2] >= '0' && str[i + 2] <= '9' ) { way[a][0] = ((str[i + 1] - '0') * 10 + str[i + 2] - '0') ; a++; } else if (str[i] == 'W' && str[i + 1] >= '0' && str[i + 1] <= '9' && str[i + 2] >= '0' && str[i + 2] <= '9' ) { way[a][1] = ((str[i + 1] - '0') * 10 + str[i + 2] - '0') ; a++; } else { continue; } } if (str[i] != ';' && str[i + 1] != ';' && str[i + 2] == ';' && (str[i - 1] == ';' || i == 0)) { //printf("1"); if (str[i] == 'A' && str[i + 1] >= '0' && str[i + 1] <= '9') { // printf("1"); way[a][0] = -(str[i + 1] - '0') ; a++; } else if (str[i] == 'S' && str[i + 1] >= '0' && str[i + 1] <= '9') { way[a][1] = -(str[i + 1] - '0') ; a++; } else if (str[i] == 'D' && str[i + 1] >= '0' && str[i + 1] <= '9') { way[a][0] = (str[i + 1] - '0') ; a++; } else if (str[i] == 'W' && str[i + 1] >= '0' && str[i + 1] <= '9') { way[a][1] = (str[i + 1] - '0') ; a++; } else { continue; } } } int x = 0, y = 0; for (int i = 0; i < a; i++) { x += way[i][0]; y += way[i][1]; } printf("%d,%d", x, y); return 0; }