華為OD機(jī)試 - 獲得完美走位(Python)| 真題+思路+代碼
# 獲得完美走位 | 華為OD機(jī)試
## 題目
在第一人稱射擊游戲中,玩家通過(guò)鍵盤(pán)的 `A`、`S`、`D`、`W` 四個(gè)按鍵控制游戲人物分別向左、向后、向右、向前進(jìn)行移動(dòng),從而完成走位。
假設(shè)玩家每按動(dòng)一次鍵盤(pán),游戲人物會(huì)向某個(gè)方向移動(dòng)一步,如果玩家在操作一定次數(shù)的鍵盤(pán)并且各個(gè)方向的步數(shù)相同時(shí),此時(shí)游戲人物必定會(huì)回到原點(diǎn),則稱此次走位為完美走位。
現(xiàn)給定玩家的走位(例如:`ASDA`),請(qǐng)通過(guò)更換其中一段連續(xù)走位的方式使得原走位能夠變成一個(gè)完美走位。
其中待更換的連續(xù)走位可以是相同長(zhǎng)度的任何走位。
請(qǐng)返回待更換的連續(xù)走位的最小可能長(zhǎng)度。
若果原走位本身是一個(gè)完美走位,則返回 `0`。
## 輸入
輸入為由鍵盤(pán)字母表示的走位`s`,例如:`ASDA`
## 輸出
輸出為待更換的連續(xù)走位的最小可能長(zhǎng)度
## 備注
1. 走位長(zhǎng)度 1≤ $s.length$ ≤$10^5$
2. `s.length` 是 `4` 的倍數(shù)
3. `s` 中只含有 `A`, `S`, `D`, `W` 四種字符
## 示例一
### 輸入
```plaintext
ASDW
```
### 輸出
```plaintext
0
```
### 說(shuō)明
已經(jīng)是完美走位了。
## 示例二
### 輸入
```plaintext
AASW
```
### 輸出
```plaintext
1
```
### 說(shuō)明
需要把一個(gè) `A` 更換成 `D`,這樣可以得到 `ADSW` 或者 `DASW`。
## 示例三
### 輸入
```plaintext
AAAA
```
### 輸出
```plaintext
3
```
### 說(shuō)明
可以替換后 `3` 個(gè) `A`,得到 `ASDW`。
解題參考
華為od 2023 | 什么是華為od,od 薪資待遇,od機(jī)試題清單
https://dream.blog.csdn.net/article/details/128980730
華為OD機(jī)試真題大全,用 Python 解華為機(jī)試題 | 機(jī)試寶典
https://dream.blog.csdn.net/article/details/129221789
【華為OD機(jī)試】全流程解析+經(jīng)驗(yàn)分享,題型分享,防作弊指南)
https://blog.csdn.net/hihell/article/details/129111620
華為od機(jī)試,獨(dú)家整理 已參加機(jī)試人員的實(shí)戰(zhàn)技巧
https://dream.blog.csdn.net/article/details/129270511