<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 2135字,需瀏覽 5分鐘

           ·

          2021-06-17 20:52

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

          今天和大家聊的問題叫做 翻轉(zhuǎn)游戲,我們先來(lái)看題面:
          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.


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

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

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


          示例


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

          解題


          這道題讓我們把相鄰的兩個(gè)++變成--,真不是一道難題,我們就從第二個(gè)字母開始遍歷,每次判斷當(dāng)前字母是否為+,和之前那個(gè)字母是否為+,如果都為加,則將翻轉(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;
              }
          };


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

          上期推文:

          LeetCode1-280題匯總,希望對(duì)你有點(diǎn)幫助!
          LeetCode刷題實(shí)戰(zhàn)281:鋸齒迭代器
          LeetCode刷題實(shí)戰(zhàn)282:給表達(dá)式添加運(yùn)算符
          LeetCode刷題實(shí)戰(zhàn)283:移動(dòng)零
          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:?jiǎn)卧~的唯一縮寫
          LeetCode刷題實(shí)戰(zhàn)289:生命游戲
          LeetCode刷題實(shí)戰(zhàn)290:?jiǎn)卧~規(guī)律


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

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲色成人无码777777在线 | 91探花视频在线观看 | 特一级黄色 | 成人18毛片| 国产成人视频九色91 |