<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)186:翻轉(zhuǎn)字符串里的單詞 II

          共 1896字,需瀏覽 4分鐘

           ·

          2021-02-17 14:03

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

          今天和大家聊的問(wèn)題叫做?翻轉(zhuǎn)字符串里的單詞 II??,我們先來(lái)看題面:
          https://leetcode-cn.com/problems/reverse-words-in-a-string-ii/

          Given an input string , reverse the string word by word.?


          Example:


          Input:? ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"]

          Output: ["b","l","u","e"," ","i","s"," ","s","k","y"," ","t","h","e"]

          題意


          給定一個(gè)字符串,逐個(gè)翻轉(zhuǎn)字符串中的每個(gè)單詞。

          示例


          示例:
          輸入: ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"]
          輸出: ["b","l","u","e"," ","i","s"," ","s","k","y"," ","t","h","e"]

          注意:
          單詞的定義是不包含空格的一系列字符
          輸入字符串中不會(huì)包含前置或尾隨的空格
          單詞與單詞之間永遠(yuǎn)是以單個(gè)空格隔開(kāi)的

          進(jìn)階:使用 O(1) 額外空間復(fù)雜度的原地解法。


          解題


          思路大致為:先對(duì)每個(gè)單詞進(jìn)行翻轉(zhuǎn),然后對(duì)句子進(jìn)行翻轉(zhuǎn)即可。
          對(duì)單詞反轉(zhuǎn)后,單詞變得不倫不類(lèi),比如 blue 變成了 eulb,并且此時(shí)每個(gè)單詞的相對(duì)位置沒(méi)變。
          再對(duì)句子進(jìn)行一次翻轉(zhuǎn),不僅把每個(gè)單詞變正常了,且每個(gè)單詞的相對(duì)位置進(jìn)行了翻轉(zhuǎn)。
          翻轉(zhuǎn)的函數(shù)實(shí)現(xiàn)很簡(jiǎn)單,給定 str 和待翻轉(zhuǎn)的索引區(qū)間即可。

          class?Solution?{
          public?void?reverseWords(char[] str)?{
          ????????int?i = 0;
          ????????for?(int?j = 0; j < str.length; j++) { // aTbTc
          ????????????if?(str[j] == ' ') {
          ????????????????reverse(str, i, j);
          ????????????????i = j + 1;
          ????????????}
          ????????}
          ????????reverse(str, i, str.length); // 最后一個(gè)單詞末尾沒(méi)有空格
          ????????System.out.println(String.valueOf(str));
          ????????reverse(str, 0, str.length); // 整體再翻轉(zhuǎn)一次
          ????}

          ????/**
          ?????* 將 str 的 [i, j] 進(jìn)行翻轉(zhuǎn),如 "the" 轉(zhuǎn)換后變成 “eht”
          ?????* 注意,[i,j] 是左閉右開(kāi)
          ?????*
          ?????* @param?str
          ?????* @param?i
          ?????* @param?j
          ?????*/

          ????private?void?reverse(char[] str, int?i, int?j)?{
          ????????for?(int?k = i; k < (i + j) / 2; k++) {
          ????????????char?tmp = str[k]; // 位置 k 的元素
          ????????????int?g = j - 1?- k + i; // 位置 k 的對(duì)稱位置
          ????????????str[k] = str[g];
          ????????????str[g] = tmp;
          ????????}
          ????}
          }



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

          上期推文:

          LeetCode1-180題匯總,希望對(duì)你有點(diǎn)幫助!
          LeetCode刷題實(shí)戰(zhàn)181:超過(guò)經(jīng)理收入的員工
          LeetCode刷題實(shí)戰(zhàn)182:查找重復(fù)的電子郵箱
          LeetCode刷題實(shí)戰(zhàn)183:從不訂購(gòu)的客戶
          LeetCode刷題實(shí)戰(zhàn)184:部門(mén)工資最高的員工
          LeetCode刷題實(shí)戰(zhàn)185:部門(mén)工資前三高的所有員工

          瀏覽 43
          點(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>
                  无码鸡巴 | 淫荡留学生激情 | 影音先锋成人在线麻豆 | 天天天操操操 | 亚洲色图欧洲 |