华为OD机试 获得完美走位

本期题目:获得完美走位

题目

在第一人称射击游戏中,玩家通过键盘的ASDW四个按键控制游戏人物分别向左、向后、向右、向前进行移动,从而完成走位。 假设玩家每按动一次键盘,游戏人物会向某个方向移动一步,如果玩家在操作一定次数的键盘并且各个方向的步数相同时,此时游戏人物必定会回到原点,则称此次走位为完美走位。 现给定玩家的走位(例如:ASDA),请通过更换其中一段连续走位的方式使得原走位能够变成一个完美走位。 其中待更换的连续走位可以是相同长度的任何走位。 请返回待更换的连续走位的最小可能长度。 若果原走位本身是一个完美走位,则返回0

输入

输入为由键盘字母表示的走位s,例如:ASDA

输出

输出为待更换的连续走位的最小可能长度

备注

  1. 走位长度 1≤s.length≤10^5
  2. s.length 是 4 的倍数
  3. s 中只含有 ASDW 四种字符

题解地址 📤

华为 OD 机试

刷题技巧 我这里有一个“刷题技巧”,你可以看看,或许可以帮到你: 不要盲目的刷题,凡是讲究策略与技巧,题型是有限的。用自己的方法梳理题型,归纳与总结,就能举一反三、手到擒来。 这个“刷题技巧”,包含了递归、分治、单调栈、并查集、滑动窗口、前缀和、查分、二分查找、 BFS 广搜和 DFS 深搜。 这些题型,都有一些共同点: 递归,都是用一组关键字来实现 BFS 广搜和 DFS 深搜的共同点: 前缀和(前缀法):通过判断值是否相等来判断结果是否为 1。若不相等则返回 1 (否则返回 0)。(也可以通过数组索引的方法) BFS 广搜的共同点:利用数组索引的方法。

posted @ 2023-04-06 10:01  梦想橡皮擦  阅读(102)  评论(0编辑  收藏  举报