1. ?LeetCode刷題實(shí)戰(zhàn)293:翻轉(zhuǎn)游戲

        共 2135字,需瀏覽 5分鐘

         ·

        2021-06-17 20:52

        算法的重要性,我就不多說了吧,想去大廠,就必須要經(jīng)過基礎(chǔ)知識和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個公眾號后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

        今天和大家聊的問題叫做 翻轉(zhuǎn)游戲,我們先來看題面:
        https://leetcode-cn.com/problems/flip-game/

        You are playing the following Flip Game with your friend: Given a string that contains only these two characters: + and -, you and your friend take turns to flip twoconsecutive "++" into "--". The game ends when a person can no longer make a move and therefore the other person will be the winner.
        Write a function to compute all possible states of the string after one valid move.


        你和朋友玩一個叫做「翻轉(zhuǎn)游戲」的游戲,游戲規(guī)則:給定一個只有 + 和 - 的字符串。

         你和朋友輪流將 連續(xù) 的兩個 “++” 反轉(zhuǎn)成 “–”。
         當(dāng)一方無法進(jìn)行有效的翻轉(zhuǎn)時便意味著游戲結(jié)束,則另一方獲勝。

        請你寫出一個函數(shù),來計(jì)算出第一次翻轉(zhuǎn)后,字符串所有的可能狀態(tài)。


        示例


        示例:
        輸入: s = "++++"
        輸出:
        [
          "--++",
          "+--+",
          "++--"
        ]
        注意:如果不存在可能的有效操作,請返回一個空列表 []。

        解題


        這道題讓我們把相鄰的兩個++變成--,真不是一道難題,我們就從第二個字母開始遍歷,每次判斷當(dāng)前字母是否為+,和之前那個字母是否為+,如果都為加,則將翻轉(zhuǎn)后的字符串存入結(jié)果中即可,參見代碼如下:

        class Solution {
        public:
            vector<string> generatePossibleNextMoves(string s) {
                vector<string> res;
                for (int i = 1; i < s.size(); ++i) {
                    if (s[i] == '+' && s[i - 1] == '+') {
                        res.push_back(s.substr(0, i - 1) + "--" + s.substr(i + 1));
                    }
                }
                return res;
            }
        };


        好了,今天的文章就到這里,如果覺得有所收獲,請順手點(diǎn)個在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動力 。

        上期推文:

        LeetCode1-280題匯總,希望對你有點(diǎn)幫助!
        LeetCode刷題實(shí)戰(zhàn)281:鋸齒迭代器
        LeetCode刷題實(shí)戰(zhàn)282:給表達(dá)式添加運(yùn)算符
        LeetCode刷題實(shí)戰(zhàn)283:移動零
        LeetCode刷題實(shí)戰(zhàn)284:頂端迭代器
        LeetCode刷題實(shí)戰(zhàn)285:二叉搜索樹中的順序后繼
        LeetCode刷題實(shí)戰(zhàn)286:墻和門
        LeetCode刷題實(shí)戰(zhàn)287:尋找重復(fù)數(shù)
        LeetCode刷題實(shí)戰(zhàn)288:單詞的唯一縮寫
        LeetCode刷題實(shí)戰(zhàn)289:生命游戲
        LeetCode刷題實(shí)戰(zhàn)290:單詞規(guī)律


        瀏覽 38
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 变态调教一区二区三区 | 亚洲 欧美 国产 日韩 动漫第一页 | 常州熟女自慰-91Porn | 东北操逼 | 影音先锋中文字幕av |