转圈方向
描述
一个动点开始位于坐标原点处,接下来它将按照预先定义好的路径运动,最终会回到原点位置。定义好的路径以一串字符串表示,其中N表示向上移动,S表示向下移动,E表示向右移动,W表示向左移动。每次移动距离均是1个单位长度。
当运动结束回到原点时请你判断这次运动是顺时针方向还是逆时针方向。
注意:数据保证最终回到原点,并且除了原点外其他任何走过的点不会被再次走到。
错误思路
判断第一次的方向,向左就cout<<0,右就cout<<1
向上或向下就找第一个左右来判断
这样明显有问题
比如
正确思路
这题其实很水,只需判断左拐次数和右拐次数哪个大就行了
左大就是1,右大就是0
AC CODE
#include<bits/stdc++.h> using namespace std; int main() { int t; cin >> t; while (t--) { string s; cin >> s; int l = 0, r = 0; for (int i = 0; i < s.size() - 1; i++) { if (s[i] == 'N' && s[i + 1] == 'W') { l++; } if (s[i] == 'S' && s[i + 1] == 'E') { l++; } if (s[i] == 'W' && s[i + 1] == 'S') { l++; } if (s[i] == 'E' && s[i + 1] == 'N') { l++; } if (s[i] == 'N' && s[i + 1] == 'E') { r++; } if (s[i] == 'S' && s[i + 1] == 'W') { r++; } if (s[i] == 'W' && s[i + 1] == 'N') { r++; } if (s[i] == 'E' && s[i + 1] == 'S') { r++; } } if (l > r) { cout << 1 << endl; } else { cout << 0 << endl; } } return 0; }
进程已结束,退出代码0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)