华为题库 HJ17 坐标移动

HJ17 坐标移动

在这里插入图片描述

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main() {
    
    
    string myStr;
    vector<string> date;
    cin>>myStr;
    int x =0 , y = 0;
    string tmp ;
    for(int i=0 ; i<myStr.size() ;i++)
    {
    
    
        if(myStr[i] == ';')
        {
    
    
            date.push_back(tmp);
            tmp.clear();
        }
        else tmp += myStr[i];
    }

    char dir;
    int lenght = 0;
    for(int i=0 ; i<date.size() ;i++)
    {
    
    
       dir = date[i][0];
       if(dir == 'A' ||dir == 'D' ||dir == 'W' ||dir == 'S')
       {
    
    
            tmp = date[i].substr(1,date[i].size() -1);

            bool flag = true;
            for(int x=0 ; x<tmp.size() ; x++ )  
            {
    
    
                if( tmp[x] >= '0' && tmp[x] <= '9')  {
    
    }
                else
                {
    
    
                    flag = false;
                    break;
                }
            }

            if(flag == true)
            {
    
    
                lenght = stoi(tmp);
                // cout<<dir<<lenght<<endl;
                if(dir == 'A') x -= lenght;
                else if(dir == 'D') x += lenght;
                else if(dir == 'W') y += lenght;
                else if(dir == 'S') y -= lenght;
            } 
       }
    }
    cout<<x<<','<<y;
}
// 64 位输出请用 printf("%lld")

猜你喜欢

转载自blog.csdn.net/qq_44814825/article/details/130077584