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

C++實(shí)現(xiàn)LeetCode(58.求末尾單詞的長度)

 更新時(shí)間:2021年07月16日 09:21:07   作者:Grandyang  
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(58.求末尾單詞的長度),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

[LeetCode] 58. Length of Last Word 求末尾單詞的長度

Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string.

If the last word does not exist, return 0.

Note: A word is defined as a character sequence consists of non-space characters only.

Example:

Input: "Hello World"
Output: 5

這道題難度不是很大。先對輸入字符串做預(yù)處理,去掉開頭和結(jié)尾的空格,然后用一個(gè)計(jì)數(shù)器來累計(jì)非空格的字符串的長度,遇到空格則將計(jì)數(shù)器清零,參見代碼如下:

解法一:

class Solution {
public:
    int lengthOfLastWord(string s) {
        int left = 0, right = (int)s.size() - 1, res = 0;
        while (s[left] == ' ') ++left;
        while (s[right] == ' ') --right;
        for (int i = left; i <= right; ++i) {
            if (s[i] == ' ') res = 0;
            else ++res;
        }
        return res;
    }
};

昨晚睡覺前又想到了一種解法,其實(shí)不用上面那么復(fù)雜的,這里關(guān)心的主要是非空格的字符,那么實(shí)際上在遍歷字符串的時(shí)候,如果遇到非空格的字符,只需要判斷其前面一個(gè)位置的字符是否為空格,如果是的話,那么當(dāng)前肯定是一個(gè)新詞的開始,將計(jì)數(shù)器重置為1,如果不是的話,說明正在統(tǒng)計(jì)一個(gè)詞的長度,計(jì)數(shù)器自增1即可。但是需要注意的是,當(dāng) i=0 的時(shí)候,無法訪問前一個(gè)字符,所以這種情況要特別判斷一下,歸為計(jì)數(shù)器自增1那類,參見代碼如下:

解法二:

class Solution {
public:
    int lengthOfLastWord(string s) {
        int res = 0;
        for (int i = 0; i < s.size(); ++i) {
            if (s[i] != ' ') {
                if (i != 0 && s[i - 1] == ' ') res = 1;
                else ++res;
            }
        }
        return res;
    }
};

下面這種方法是第一種解法的優(yōu)化版本,由于只關(guān)于最后一個(gè)單詞的長度,所以開頭有多少個(gè)空格起始并不需要在意,從字符串末尾開始,先將末尾的空格都去掉,然后開始找非空格的字符的長度即可,參見代碼如下:

解法三:

class Solution {
public:
    int lengthOfLastWord(string s) {
        int right = s.size() - 1, res = 0;
        while (right >= 0 && s[right] == ' ') --right;
        while (right >= 0 && s[right] != ' ' ) {
            --right; 
            ++res;
        }
        return res;
    }
};

這道題用Java來做可以一行搞定,請參見這個(gè)帖子.

到此這篇關(guān)于C++實(shí)現(xiàn)LeetCode(58.求末尾單詞的長度)的文章就介紹到這了,更多相關(guān)C++實(shí)現(xiàn)求末尾單詞的長度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入解析C++中類的多重繼承

    深入解析C++中類的多重繼承

    這篇文章主要介紹了深入解析C++中類的多重繼承,包括多重繼承相關(guān)的二義性問題,需要的朋友可以參考下
    2015-09-09
  • C語言實(shí)現(xiàn)簡單的學(xué)生學(xué)籍管理系統(tǒng)

    C語言實(shí)現(xiàn)簡單的學(xué)生學(xué)籍管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單的學(xué)生學(xué)籍管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • C語言字符串的模式匹配之BF與KMP

    C語言字符串的模式匹配之BF與KMP

    這篇文章記錄一下串里面的模式匹配,模式匹配,顧名思義就是給定一個(gè)被匹配的字符串,然后用一個(gè)字符串模式(模型)去匹配上面說的字符串,看后者是否在前者里面出現(xiàn)。常用的有2種算法可以實(shí)現(xiàn),下面我們來具體探討下
    2021-09-09
  • C++中的strcmp函數(shù)

    C++中的strcmp函數(shù)

    strcmp函數(shù)是C++標(biāo)準(zhǔn)庫中用于字符串比較的重要函數(shù),在C++中,字符串比較是一項(xiàng)常見的操作,用于判斷兩個(gè)字符串是否相等或者大小關(guān)系,本文介紹C++中的strcmp函數(shù),感興趣的朋友一起看看吧
    2024-03-03
  • Qt添加MSVC2017編譯器的實(shí)現(xiàn)方法

    Qt添加MSVC2017編譯器的實(shí)現(xiàn)方法

    Qt添加MSVC2017編譯器是開發(fā)者在Windows平臺上進(jìn)行Qt應(yīng)用程序開發(fā)的重要步驟,本文詳細(xì)介紹了如何為Qt配置MSVC2017編譯器的具體步驟,感興趣的可以了解一下
    2023-09-09
  • C++中的局部變量、全局變量、局部靜態(tài)變量、全局靜態(tài)變量的區(qū)別

    C++中的局部變量、全局變量、局部靜態(tài)變量、全局靜態(tài)變量的區(qū)別

    本文主要介紹了C++中的局部變量、全局變量、局部靜態(tài)變量、全局靜態(tài)變量的區(qū)別。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • C語言算法練習(xí)之?dāng)?shù)組求素?cái)?shù)

    C語言算法練習(xí)之?dāng)?shù)組求素?cái)?shù)

    這篇文章主要為大家介紹了C語言算法練習(xí)中數(shù)組求素?cái)?shù)的實(shí)現(xiàn)方法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C語言有一定幫助,需要的可以參考一下
    2022-09-09
  • C++ 動態(tài)內(nèi)存分配詳解(new/new[]和delete/delete[])

    C++ 動態(tài)內(nèi)存分配詳解(new/new[]和delete/delete[])

    這篇文章主要介紹了C++ 動態(tài)內(nèi)存分配詳解(new/new[]和delete/delete[]),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 使用QGraphicsView實(shí)現(xiàn)氣泡聊天窗口+排雷功能

    使用QGraphicsView實(shí)現(xiàn)氣泡聊天窗口+排雷功能

    這篇文章主要介紹了使用QGraphicsView實(shí)現(xiàn)氣泡聊天窗口+排雷,重點(diǎn)給大家介紹使用QWebEngineView控件內(nèi)嵌html+CSS的實(shí)現(xiàn)方式,需要的朋友可以參考下
    2022-04-04
  • C++靜態(tài)變量,常量的存儲位置你真的了解嗎

    C++靜態(tài)變量,常量的存儲位置你真的了解嗎

    這篇文章主要介紹了C++中靜態(tài)變量與常量的存儲位置的相關(guān)資料,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-08-08

最新評論

来宾市| 临潭县| 松阳县| 漳平市| 襄樊市| 固镇县| 三明市| 嘉鱼县| 大同市| 宝清县| 澜沧| 涟水县| 渝中区| 大渡口区| 汤原县| SHOW| 五常市| 台北县| 石泉县| 望城县| 固安县| 桂东县| 河北省| 二连浩特市| 德庆县| 辽源市| 海盐县| 玛曲县| 华阴市| 淮北市| 涡阳县| 安溪县| 建水县| 称多县| 金乡县| 永德县| 韶关市| 青川县| 巴东县| 桦甸市| 阿图什市|