小慕正在开发一款第一人称射击游戏的角色移动系统。玩家通过键盘上的 `A`、`S`、`D`、`W` 四个按键控制角色分别向左、向后、向右、向前移动一步,从而完成走位。 小慕发现,如果玩家按动一定次数的键盘后,各个方向的移动步数恰好相等,那么角色必定会回到原点,小慕将这种走位称为。 现在小慕拿到了一段玩家的走位记录(例如:`ASDA`),他希望通过替换其中一段(可以替换成任意相同长度的走位),使得整段走位变成一个完美走位。 请你帮小慕计算出待替换的连续走位的最小可能长度。如果原走位本身已经是完美走位,则返回 `0`。 备注 1. 走位长度 1 ≤ s.length ≤ 10^5 2. s.length 是 4 的倍数 3. s 中只含有 A、S、D、W
提示:带虚线的词点一下有通俗解释。
输入描述
<div data-page-id="OAMMdvCuDocxiZxW5vvcJztgnAe" data-docx-has-block-data="false"> <div style="white-space-collapse:preserve;" class="ace-line ace-line old-record-id-Iek2dTr52oIaGSxlCMlcNImKnDb">输入为由键盘字母表示的走位<code>s</code>,例如:<code>ASDA</code> </div> </div> <span data-lark-record-data="{"rootId":"OAMMdvCuDocxiZxW5vvcJztgnAe","text":{"initialAttributedTexts":{"text":{"0":"输入为由键盘字母表示的走位s,例如:ASDA"},"attribs":{"0":"*0+d*0*1+1*0+4*0*1+4"}},"apool":{"numToAttrib":{"0":["author","7115054903550050305"],"1":["inlineCode","true"]},"nextNum":2}},"type":"text","referenceRecordMap":{},"extra":{"mention_page_title":{},"external_mention_url":{}},"isKeepQuoteContainer":false,"isFromCode":false,"selection":[{"id":9,"type":"text","selection":{"start":0,"end":22},"recordId":"Iek2dTr52oIaGSxlCMlcNImKnDb"}],"payloadMap":{},"isCut":false}" data-lark-record-format="docx/text" class="lark-record-clipboard"></span>
输出描述
<div data-page-id="OAMMdvCuDocxiZxW5vvcJztgnAe" data-docx-has-block-data="false"> <div style="white-space-collapse:preserve;" class="ace-line ace-line old-record-id-KfFddI2yaoRAZcxyxACcarixnff">输出为待更换的连续走位的最小可能长度 </div> </div> <span data-lark-record-data="{"rootId":"OAMMdvCuDocxiZxW5vvcJztgnAe","text":{"initialAttributedTexts":{"text":{"0":"输出为待更换的连续走位的最小可能长度"},"attribs":{"0":"*0+i"}},"apool":{"numToAttrib":{"0":["author","7115054903550050305"]},"nextNum":1}},"type":"text","referenceRecordMap":{},"extra":{"mention_page_title":{},"external_mention_url":{}},"isKeepQuoteContainer":false,"isFromCode":false,"selection":[{"id":11,"type":"text","selection":{"start":0,"end":18},"recordId":"KfFddI2yaoRAZcxyxACcarixnff"}],"payloadMap":{},"isCut":false}" data-lark-record-format="docx/text" class="lark-record-clipboard"></span>
示例
示例 1
输入
AASW
输出
1
说明:需要把一个 A 更换成 D,这样可以得到 ADSW 或者 DASW。
示例 2
输入
ASDW
输出
0
说明:已经是完美走位了。
示例 3
输入
AAAA
输出
3
说明:可以替换后 3 个 A,得到 ASDW。
示例 4
输入
AAAAADDD
输出
4
时间限制 1000 ms · 内存限制 128 MB