9945题解

· · 题解

题目大意

题目传送门。

解题思路

第一眼看题目会发现完全没有思路。实质上所谓逆时针和顺时针只与转向的次数与方向有关。由于题目保证 John 一定走了一圈。毫无疑问一次左转和一次右转后行走方向不变。

仔细观察得到:可统计左转(记为 -1)和右转(记为 +1)的个数记为 ans。若 ans 大于 0 输出 CW,否则输出 CCW。

代码

#include<bits/stdc++.h>
using namespace std;
int ans;
int init(char a,char b){
    if(a=='N'&&b=='E')return 1;
    if(a=='E'&&b=='S')return 1;
    if(a=='S'&&b=='W')return 1;
    if(a=='W'&&b=='N')return 1;
    return -1;
}
signed main(){
    int n;
    string s;
    cin>>n;
    while(n--){
        ans=0;
        cin>>s;
        for(int i=1;i<s.length();i++){
            if(s[i-1]!=s[i])//与前一个字符不同再判定转弯方向
            ans+=init(s[i-1],s[i]);
        }
        if(ans>0)cout<<"CW\n";
        else cout<<"CCW\n";
    }
}