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’ 。
二:分析
每次遇見X那么的話就要進(jìn)行 跳3個(gè)位置 并且要計(jì)數(shù)
因?yàn)槊坑鲆娨粋€(gè)x那么后面的兩個(gè)無論x或o 都不用管了 反正都是o
下次從i+3開始算起
三:上碼
class Solution { public:int minimumMoves(string s) {//每次遇見X那么的話就要進(jìn)行 跳3個(gè)位置 并且要計(jì)數(shù) //因?yàn)槊坑鲆娨粋€(gè)x那么后面的兩個(gè)無論x或o 都不用管了 反正都是ole//下次從i+3開始算起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í)真的很簡單,可是自己打比賽時(shí)候就是做不出來,一道也沒做出來,慢慢來吧 加油 我們共勉!還有今天真冷!!!
總結(jié)
以上是生活随笔為你收集整理的leedcode04:转换字符串的最少操作次数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10-7 3-2-(b)查询由生产厂商B
- 下一篇: vector的求和用法accumulat