最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實現(xiàn)LeetCode(186.翻轉(zhuǎn)字符串中的單詞之二)

 更新時間:2021年08月04日 16:07:02   作者:Grandyang  
這篇文章主要介紹了C++實現(xiàn)LeetCode(186.翻轉(zhuǎn)字符串中的單詞之二),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

[LeetCode] 186. Reverse Words in a String II 翻轉(zhuǎn)字符串中的單詞之二

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"]

Note: 

  • A word is defined as a sequence of non-space characters.
  • The input string does not contain leading or trailing spaces.
  • The words are always separated by a single space.

Follow up: Could you do it in-place without allocating extra space?

這道題讓我們翻轉(zhuǎn)一個字符串中的單詞,跟之前那題 Reverse Words in a String 沒有區(qū)別,由于之前那道題就是用 in-place 的方法做的,而這道題反而更簡化了題目,因為不考慮首尾空格了和單詞之間的多空格了,方法還是很簡單,先把每個單詞翻轉(zhuǎn)一遍,再把整個字符串翻轉(zhuǎn)一遍,或者也可以調(diào)換個順序,先翻轉(zhuǎn)整個字符串,再翻轉(zhuǎn)每個單詞,參見代碼如下:

解法一:

class Solution {
public:
    void reverseWords(vector<char>& str) {
        int left = 0, n = str.size();
        for (int i = 0; i <= n; ++i) {
            if (i == n || str[i] == ' ') {
                reverse(str, left, i - 1);
                left = i + 1;
            }
        }
        reverse(str, 0, n - 1);
    }
    void reverse(vector<char>& str, int left, int right) {
        while (left < right) {
            char t = str[left];
            str[left] = str[right];
            str[right] = t;
            ++left; --right;
        }
    }
};

我們也可以使用 C++ STL 中自帶的 reverse 函數(shù)來做,先把整個字符串翻轉(zhuǎn)一下,然后再來掃描每個字符,用兩個指針,一個指向開頭,另一個開始遍歷,遇到空格停止,這樣兩個指針之間就確定了一個單詞的范圍,直接調(diào)用 reverse 函數(shù)翻轉(zhuǎn),然后移動頭指針到下一個位置,在用另一個指針繼續(xù)掃描,重復(fù)上述步驟即可,參見代碼如下:

解法二:

class Solution {
public:
    void reverseWords(vector<char>& str) {
        reverse(str.begin(), str.end());
        for (int i = 0, j = 0; i < str.size(); i = j + 1) {
            for (j = i; j < str.size(); ++j) {
                if (str[j] == ' ') break;
            }
            reverse(str.begin() + i, str.begin() + j);
        }
    }
};

Github 同步地址:

https://github.com/grandyang/leetcode/issues/186

類似題目:

Reverse Words in a String III

Reverse Words in a String

Rotate Array

參考資料:

https://leetcode.com/problems/reverse-words-in-a-string-ii/

https://leetcode.com/problems/reverse-words-in-a-string-ii/discuss/53851/Six-lines-solution-in-C%2B%2B

https://leetcode.com/problems/reverse-words-in-a-string-ii/discuss/53775/My-Java-solution-with-explanation

到此這篇關(guān)于C++實現(xiàn)LeetCode(186.翻轉(zhuǎn)字符串中的單詞之二)的文章就介紹到這了,更多相關(guān)C++實現(xiàn)翻轉(zhuǎn)字符串中的單詞之二內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++11獲取線程返回值的實現(xiàn)代碼

    C++11獲取線程返回值的實現(xiàn)代碼

    這篇文章主要介紹了C++11獲取線程返回值的實現(xiàn)代碼,需要的朋友可以參考下
    2019-04-04
  • C語言實現(xiàn)二叉樹鏈?zhǔn)浇Y(jié)構(gòu)的示例詳解

    C語言實現(xiàn)二叉樹鏈?zhǔn)浇Y(jié)構(gòu)的示例詳解

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)二叉樹鏈?zhǔn)浇Y(jié)構(gòu)的相關(guān)資料,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C語言有一定的幫助,需要的可以參考一下
    2022-11-11
  • C語言常量介紹

    C語言常量介紹

    這篇文章介紹了C語言中的常量,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • C/C++整數(shù)乘積的溢出問題的解決

    C/C++整數(shù)乘積的溢出問題的解決

    整數(shù)乘積的溢出問題是指兩個整數(shù)相乘得到的結(jié)果超過了所能表示的數(shù)據(jù)類型的范圍,本文給大家介紹了C/C++整數(shù)乘積的溢出問題的解決,需要的朋友可以參考下
    2024-02-02
  • 詳解c/c++鏈?zhǔn)蕉褩C枋鲞M(jìn)制轉(zhuǎn)換問題示例

    詳解c/c++鏈?zhǔn)蕉褩C枋鲞M(jìn)制轉(zhuǎn)換問題示例

    這篇文章主要為大家介紹了c/c++鏈?zhǔn)蕉褩C枋鲞M(jìn)制轉(zhuǎn)換問題示例解析有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • C C++ 算法實例大全

    C C++ 算法實例大全

    這篇文章主要介紹了C C++ 算法實例大全,里面大量的實例介紹,學(xué)習(xí)c語言的朋友可以收藏
    2016-12-12
  • 基于Matlab制作一個數(shù)獨求解器

    基于Matlab制作一個數(shù)獨求解器

    這篇文章主要為大家詳細(xì)介紹了如何利用Matlab制作一個數(shù)獨求解器,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下
    2022-05-05
  • 一文帶你深入了解C++中音頻PCM數(shù)據(jù)

    一文帶你深入了解C++中音頻PCM數(shù)據(jù)

    PCM(Pulse Code Modulation)也被稱為脈沖編碼調(diào)制,是數(shù)字通信的編碼方式之一。這篇文章主要和大家聊聊C++中音頻PCM數(shù)據(jù)的相關(guān)操作,需要的可以參考一下
    2023-02-02
  • C語言中pthread_create函數(shù)實現(xiàn)向線程函數(shù)傳遞參數(shù)

    C語言中pthread_create函數(shù)實現(xiàn)向線程函數(shù)傳遞參數(shù)

    本文主要介紹了C語言中pthread_create函數(shù)實現(xiàn)向線程函數(shù)傳遞參數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • c語言輸出字符串中最大對稱子串長度的3種解決方案

    c語言輸出字符串中最大對稱子串長度的3種解決方案

    這篇文章主要介紹了c語言輸出字符串中最大對稱子串長度的3種解決方案,需要的朋友可以參考下
    2014-03-03

最新評論

柳河县| 建瓯市| 晋州市| 呼和浩特市| 汪清县| 安达市| 双牌县| 织金县| 亚东县| 平乐县| 临江市| 晴隆县| 富阳市| 武汉市| 平和县| 洛川县| 建瓯市| 高要市| 石柱| 资源县| 舒兰市| 临澧县| 威宁| 察雅县| 西丰县| 遂昌县| 大名县| 庆安县| 太和县| 三门县| 陈巴尔虎旗| 麟游县| 朝阳市| 黄大仙区| 陇南市| 马边| 宜君县| 黔江区| 铅山县| 石嘴山市| 织金县|