leedcode04:转换字符串的最少操作次数
一:題目
給你一個(gè)字符串 s ,由 n 個(gè)字符組成,每個(gè)字符不是 ‘X’ 就是 ‘O’ 。
一次 操作 定義為從 s 中選出 三個(gè)連續(xù)字符 并將選中的每個(gè)字符都轉(zhuǎn)換為 ‘O’ 。注意,如果字符已經(jīng)是 ‘O’ ,只需要保持 不變 。
返回將 s 中所有字符均轉(zhuǎn)換為 ‘O’ 需要執(zhí)行的 最少 操作次數(shù)。
示例 1:
輸入:s = “XXX”
輸出:1
解釋:XXX -> OOO
一次操作,選中全部 3 個(gè)字符,并將它們轉(zhuǎn)換為 ‘O’ 。
示例 2:
輸入:s = “XXOX”
輸出:2
解釋:XXOX -> OOOX -> OOOO
第一次操作,選擇前 3 個(gè)字符,并將這些字符轉(zhuǎn)換為 ‘O’ 。
然后,選中后 3 個(gè)字符,并執(zhí)行轉(zhuǎn)換。最終得到的字符串全由字符 ‘O’ 組成。
示例 3:
輸入:s = “OOOO”
輸出:0
解釋:s 中不存在需要轉(zhuǎn)換的 ‘X’ 。
二:分析
每次遇見(jiàn)X那么的話(huà)就要進(jìn)行 跳3個(gè)位置 并且要計(jì)數(shù)
因?yàn)槊坑鲆?jiàn)一個(gè)x那么后面的兩個(gè)無(wú)論x或o 都不用管了 反正都是o
下次從i+3開(kāi)始算起
三:上碼
class Solution { public:int minimumMoves(string s) {//每次遇見(jiàn)X那么的話(huà)就要進(jìn)行 跳3個(gè)位置 并且要計(jì)數(shù) //因?yàn)槊坑鲆?jiàn)一個(gè)x那么后面的兩個(gè)無(wú)論x或o 都不用管了 反正都是ole//下次從i+3開(kāi)始算起int count = 0;for(int i = 0; i < s.size(); ){if(s[i] == 'X'){i = i + 3; count++;}else{i++;}}return count;} };
老樣子 加油boy!!! 這個(gè)題其實(shí)真的很簡(jiǎn)單,可是自己打比賽時(shí)候就是做不出來(lái),一道也沒(méi)做出來(lái),慢慢來(lái)吧 加油 我們共勉!還有今天真冷!!!
總結(jié)
以上是生活随笔為你收集整理的leedcode04:转换字符串的最少操作次数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 10-7 3-2-(b)查询由生产厂商B
- 下一篇: 消息称小米将推出竖向小折叠手机,整体设计