题解 | #坐标移动#

坐标移动

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

#include <stdio.h>
#include <string.h>
#define hg(i,j) (str[i]==j)&&(str[i+1]>='0')&&(str[i+1]<='9')&&(str[i+2]>='0')&&(str[i+2]<='9')&&(str[i+3]==';')&&(str[i-1]==';')
#define hg2(i,j) (str[i]==j)&&(str[i+1]>='0')&&(str[i+1]<='9')&&(str[i+2]==';')&&(str[i-1]==';')


int main() {
    int l;
    int x,y;
    x=y=0;
    char str1[10010]={0};    
    scanf("%[^\n]",str1);
    char str[10012]={0};
    str[0]=';';
    l=strlen(str1);
    int l2=strlen(str); 
    str[l2]=';';   
    for(int i=0;i<l;i++)
    {
        str[i+1]=str1[i];
    }
    for(int i=0;i<=l;i++)
    {
        if(hg(i,'A'))
        {
            int m=0;
            m=(str[i+1]-'0')*10+(str[i+2]-'0');
            x=x-m;
        }
        if(hg(i,'D'))
        {
            int m=0;
             m=(str[i+1]-'0')*10+(str[i+2]-'0');
            x=x+m;
        }
        if(hg(i,'W'))
        {
            int m=0;
             m=(str[i+1]-'0')*10+(str[i+2]-'0');
            y=y+m;
        }
        if(hg(i,'S'))
        {
            int m=0;
             m=(str[i+1]-'0')*10+(str[i+2]-'0');
            y=y-m;
        }
         if(hg2(i,'A'))
        {
            int m=0;
            m=(str[i+1]-'0');
            x=x-m;
        }
        if(hg2(i,'D'))
        {
            int m=0;
             m=(str[i+1]-'0');
            x=x+m;
        }
        if(hg2(i,'W'))
        {
            int m=0;
             m=(str[i+1]-'0');
            y=y+m;
        }
        if(hg2(i,'S'))
        {
            int m=0;
             m=(str[i+1]-'0');
            y=y-m;
        }
    }
    printf("%d,%d",x,y);
}

全部评论

相关推荐

蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务