Lintcode53 Reverse Words in a String solution 題解

【題目描述】

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

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

【題目鏈接】

http://www.lintcode.com/en/problem/reverse-words-in-a-string/

【題目解析】

這道題讓我們翻轉(zhuǎn)字符串中的單詞,題目中給了我們寫特別說明,如果單詞之間遇到多個空格,只能返回一個,而且首尾不能有單詞,并且對C語言程序員要求空間復雜度為O(1),所以我們只能對原字符串s之間做修改,而不能聲明新的字符串。那么我們?nèi)绾畏D(zhuǎn)字符串中的單詞呢,我們的做法是,先整個字符串整體翻轉(zhuǎn)一次,然后再分別翻轉(zhuǎn)每一個單詞(或者先分別翻轉(zhuǎn)每一個單詞,然后再整個字符串整體翻轉(zhuǎn)一次),此時就能得到我們需要的結(jié)果了。那么這里我們需要定義一些變量來輔助我們解題,storeIndex表示當前存儲到的位置,n為字符串的長度。我們先給整個字符串反轉(zhuǎn)一下,然后我們開始循環(huán),遇到空格直接跳過,如果是非空格字符,我們此時看storeIndex是否為0,為0的話表示第一個單詞,不用增加空格;如果不為0,說明不是第一個單詞,需要在單詞中間加一個空格,然后我們要找到下一個單詞的結(jié)束位置我們用一個while循環(huán)來找下一個為空格的位置,在此過程中繼續(xù)覆蓋原字符串,找到結(jié)束位置了,下面就來翻轉(zhuǎn)這個單詞,然后更新i為結(jié)尾位置,最后遍歷結(jié)束,我們剪裁原字符串到storeIndex位置,就可以得到我們需要的結(jié)果

【參考答案】

www.jiuzhang.com/solutions/reverse-words-in-a-string/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,687評論 0 4
  • 問題 Given an input string, reverse the string word by word...
    RobotBerry閱讀 426評論 0 0
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內(nèi)部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,767評論 18 399
  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,928評論 0 33
  • 關于什么是財富的前提條件這個定義,小黑和小白的議見發(fā)生了分歧。為此展開了討論。 小白: 我認為人類的所有財富,都是...
    李洪戎閱讀 420評論 0 2

友情鏈接更多精彩內(nèi)容