AC题解,有注释啊啊啊!!
2023-07-16 14:59:47
发布于:广东
7阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
string str;
int dir[4][4] = {{0,0,90,-90},{0,0,-90,90},{-90,90,0,0},{90,-90,0,0}}; // 存储方向对应的角度变化
int main(){
int n;
cin >> n;
for(int i = 1; i <= n; i++){
cin >> str;
str = str + str[0]; // 将字符串首尾相接,以确保围栏闭合
int len = str.size();
int ang = 0;
for (int i = 0; i <= len - 2; i++){
int x, y;
// 根据围栏方向字符确定对应的行和列
if (str[i] == 'E')x = 0;
if (str[i + 1] == 'E')y = 0;
if (str[i] == 'W')x = 1;
if (str[i + 1] == 'W')y = 1;
if (str[i] == 'S')x = 2;
if (str[i + 1] == 'S')y = 2;
if (str[i] == 'N')x = 3;
if (str[i + 1] == 'N')y = 3;
// 累加角度变化
if (dir[x][y]){
ang += dir[x][y];
}
}
// 判断角度总和,输出结果
if (ang == -360)cout << "CCW" << endl;
else if(ang == 360)cout << "CW" << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个