Leetcode 657 机器人能否回到原点
JAVA 遍历:
public final boolean judgeCircle(String moves) { int x = 0, y = 0; for (int i = 0; i < moves.length(); i++) { char c = moves.charAt(i); switch (c) { case 'L': x--; break; case 'R': x++; break; case 'U': y++; break; case 'D': y--; break; } } return x == 0 && y == 0; }
JAVA 栈辅助:
public final boolean judgeCircle(String moves) { Stack<Character> uStack = new Stack<Character>(); Stack<Character> dStack = new Stack<Character>(); Stack<Character> lStack = new Stack<Character>(); Stack<Character> rStack = new Stack<Character>(); for (int i = 0; i < moves.length(); i++) { Stack<Character> t = null, s = null; switch (moves.charAt(i)) { case 'L': t = rStack; s = lStack; break; case 'R': t = lStack; s = rStack; break; case 'U': t = dStack; s = uStack; break; case 'D': t = uStack; s = dStack; break; } popOrPush(moves.charAt(i), t, s); } return uStack.empty() && dStack.empty() && lStack.empty() && rStack.empty(); } private final void popOrPush(char c, Stack<Character> t, Stack<Character> s) { if (t.empty()) s.push(c); else t.pop(); }
JS 栈辅助:
/** * @param {string} moves * @return {boolean} */ var judgeCircle = function (moves) { var u = [], d = [], l = [], r = []; for (let i = 0; i < moves.length; i++) { let c = moves.charAt(i); popOrPush(c, u, d, l, r); } return u.length == 0 && d.length == 0 && l.length == 0 && r.length == 0; } var popOrPush = (c, u, d, l, r) => { let stack0, stack1; switch (c) { case 'U': stack0 = d; stack1 = u; break; case 'D': stack0 = u; stack1 = d; break; case 'L': stack0 = r; stack1 = l; break; case 'R': stack0 = l; stack1 = r; } if (stack0.length == 0) stack1.push(c); else stack0.pop(); }
当你看清人们的真相,于是你知道了,你可以忍受孤独
分类:
数据结构与算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构