华为OD机试 - 获得完美走位(Python)| 真题+思路+代码
# 获得完美走位 | 华为OD机试
## 题目
在第一人称射击游戏中,玩家通过键盘的 `A`、`S`、`D`、`W` 四个按键控制游戏人物分别向左、向后、向右、向前进行移动,从而完成走位。
假设玩家每按动一次键盘,游戏人物会向某个方向移动一步,如果玩家在操作一定次数的键盘并且各个方向的步数相同时,此时游戏人物必定会回到原点,则称此次走位为完美走位。
现给定玩家的走位(例如:`ASDA`),请通过更换其中一段连续走位的方式使得原走位能够变成一个完美走位。
其中待更换的连续走位可以是相同长度的任何走位。
请返回待更换的连续走位的最小可能长度。
若果原走位本身是一个完美走位,则返回 `0`。
## 输入
输入为由键盘字母表示的走位`s`,例如:`ASDA`
## 输出
输出为待更换的连续走位的最小可能长度
## 备注
1. 走位长度 1≤ $s.length$ ≤$10^5$
2. `s.length` 是 `4` 的倍数
3. `s` 中只含有 `A`, `S`, `D`, `W` 四种字符
## 示例一
### 输入
```plaintext
ASDW
```
### 输出
```plaintext
0
```
### 说明
已经是完美走位了。
## 示例二
### 输入
```plaintext
AASW
```
### 输出
```plaintext
1
```
### 说明
需要把一个 `A` 更换成 `D`,这样可以得到 `ADSW` 或者 `DASW`。
## 示例三
### 输入
```plaintext
AAAA
```
### 输出
```plaintext
3
```
### 说明
可以替换后 `3` 个 `A`,得到 `ASDW`。
解题参考
华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单
https://dream.blog.csdn.net/article/details/128980730
华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典
https://dream.blog.csdn.net/article/details/129221789
【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)
https://blog.csdn.net/hihell/article/details/129111620
华为od机试,独家整理 已参加机试人员的实战技巧
https://dream.blog.csdn.net/article/details/129270511