题解 | 坐标移动

坐标移动

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

#include <stdio.h>
int x;
int y;
char *parr;
int length;

void step();
void getlength();

int main(){
    char arr[10000];
    scanf("%s", arr);
    parr = arr;

    while(*parr != '\0'){
        step();
        parr ++;
    }
    printf("%d,%d", x, y);
}
void getlength(){
    if(*parr == 'A'){
        x -= length;
    }
    else if(*parr == 'D'){
        x += length;
    }
    else if(*parr == 'W'){
        y += length;
    }
    else if(*parr == 'S'){
        y -= length;
    }
}
void step(){
    if(*parr == 'A' || *parr == 'D' || *parr == 'W' || *parr == 'S'){
        if(*(parr+1)>='0' && *(parr+1)<='9'){
            if(*(parr+2) == ';'){
                length = *(parr+1)-48;
                getlength();
            }
            else if(*(parr+2)>='0' && *(parr+2)<='9' && *(parr+3) == ';'){
                length = 10*(*(parr+1)-48)+*(parr+2)-48;
                getlength();
            }
        }
    }
    while(*parr != ';'){
        parr++;
    }
}

全部评论

相关推荐

03-29 18:59
运城学院 Java
程序员小白条:咱们要对自己的简历和学历有清晰的认知,不要动不动就大厂了....都26届了,没实习还想着大厂,唉
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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