国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

LeetCode 151:給定一個字符串,逐個翻轉字符串中的每個單詞 Reverse Words i

dongxiawu / 476人閱讀

摘要:說明無空格字符構成一個單詞。輸入字符串可以在前面或者后面包含多余的空格,但是反轉后的字符不能包括。我們將字符串轉為字符型數組并用兩個指針來解這道題。指針作為原字符串轉為字符數組的索引,從右向左移。

公眾號:愛寫bug(ID:icodebugs)

翻轉字符串里的單詞

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

示例 1:

輸入: "the sky is blue"
輸出: "blue is sky the"

示例 2:

輸入: "  hello world!  "
輸出: "world! hello"
解釋: 輸入字符串可以在前面或者后面包含多余的空格,但是反轉后的字符不能包括。

示例 3:

輸入: "a good   example"
輸出: "example good a"
解釋: 如果兩個單詞間有多余的空格,將反轉后單詞間的空格減少到只含一個。

說明:

無空格字符構成一個單詞。

輸入字符串可以在前面或者后面包含多余的空格,但是反轉后的字符不能包括。

如果兩個單詞間有多余的空格,將反轉后單詞間的空格減少到只含一個。

進階:

請選用 C 語言的用戶嘗試使用 O(1) 額外空間復雜度的原地解法。

Note:

A word is defined as a sequence of non-space characters.

Input string may contain leading or trailing spaces. However, your reversed string should not contain leading or trailing spaces.

You need to reduce multiple spaces between two words to a single space in the reversed string.

Follow up:

For C programmers, try to solve it in-place in O(1) extra space.

解題思路:

Java 字符串不支持運算符重載,無法用原地解法。 我們將字符串轉為字符型數組并用兩個指針來解這道題。指針 i 作為原字符串轉為字符數組的索引,從右向左移。指針 j 作為新字符數組索引,從左向右賦值得到原數組 count 長度的字符。count記錄遇到的字母數量,每次遇到 空格 字符,新數組得到從該空格字符 向右 count 個字符并刷新count 計數。

Java:
class Solution {
    public String reverseWords(String s) {
        if (s.length()==0)return s;//如果為空直接返回
        char strs[]=s.toCharArray(),ans[]=new char[s.length()];//字符串轉為char字符數組
        int count=0,j=0;//全局變量j記錄新數組索引
        for(int i=s.length()-1;i>=0;i--){指針i從右向左遍歷strs字符
            if(strs[i]==" "){//判斷是否為空格字符
                int k=i+1;
                if(count>0){
                    while (--count>=0){//從字符i向右count個字符賦給新數組ans
                        ans[j++]=strs[k++];
                    }
                    ans[j++]=" ";
                    count=0;//count初始化為0
                }
            }else if(i==0){
                for(;i<=count;i++)ans[j++]=strs[i];//左移到第一個字符時證明不是以空格開頭,則從0獲取count+1個個字符賦給ans
                j+=1;
                break;
            }
            else {
                count++;//如果是字母,則count累加1
            }
        }
        if(j<1)return "";//如果j依然是0,則原字符串全為空格,返回空字符串
        String string=String.valueOf(ans,0,j-1);//char數組轉為字符串返回
        return string;
    }
}

為了考慮性能,轉成了多個判斷,所以有些繁瑣。最終運行:Your runtime beats 99.91 % of java submissions

Python3:

python完全可以實現Java的思路,不再復現。這里利用函數投機取巧:

split() ,它可以把傳入字符串剔除空格后返回 所有單詞的數組

join() ,它可以指定一個數組以特定字符為間隔,拼接成一個字符串

加上 [::-1] 反轉數組,一行代碼既可實現該題目要求

" abc  def  "            原字符串

["abc" , "def"] 剔除空格返回String型單詞數組

["def" , "abc"] 切片反轉數組

"def abc" 拼接成字符串

class Solution:
    def reverseWords(self, s: str) -> str:
        return " ".join(s.split()[::-1]) # 剔除所有空格字符返回數組并反轉,以空格為間隔把數組拼成字符串

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45147.html

相關文章

  • LeetCode 151給定一個符串逐個翻轉符串中的每個單詞 Reverse Words i

    摘要:說明無空格字符構成一個單詞。輸入字符串可以在前面或者后面包含多余的空格,但是反轉后的字符不能包括。我們將字符串轉為字符型數組并用兩個指針來解這道題。指針作為原字符串轉為字符數組的索引,從右向左移。 公眾號:愛寫bug(ID:icodebugs) 翻轉字符串里的單詞 Given an input string, reverse the string word by word. 示例 1:...

    red_bricks 評論0 收藏0
  • LeetCode 之 JavaScript 解答第151題 —— 反轉符串中的單詞

    摘要:小鹿題目翻轉字符串里的單詞給定一個字符串,逐個翻轉字符串中的每個單詞。說明無空格字符構成一個單詞。遇到空格之后,將單詞進行倒序拼接。消除尾部的空格。測試用例空字符串。中間空格大于的字符串。 Time:2019/4/20Title: Reverse Words In a StringDifficulty: MidumnAuthor: 小鹿 題目:Reverse Words In a ...

    betacat 評論0 收藏0
  • leetcode刷題筆記(2)(python)

    摘要:思路先用將字符串分割,再遍歷,將字符串內每個單詞進行翻轉代碼題意給定一個字符串,將字符串按照翻轉,不翻轉的規則進行處理。思路先將字符串分段,然后再根據段落進行處理最后將字符串輸出。 344 Reverse String題意:給出一個字符串對字符串進行翻轉(reverse)思路:直接使用切片函數進行翻轉(網上看到的,具體怎么使用有點迷)[::-1]代碼:`class Solution(...

    Guakin_Huang 評論0 收藏0
  • leetcode 151. Reverse Words in a String

    摘要:題目要求講一個字符串中的單詞逆序輸出,單詞中字母順序不發生改變。其中,字符串首位的空格應刪去,字符串中如果存在多余的空格,只需輸出一個空格。這里用到的正則表達式為也就是遇到一個或多個空白時斷句。 題目要求 Given an input string, reverse the string word by word. For example, Given s = the sky is ...

    yzd 評論0 收藏0
  • 翻轉符串的相關題目

    摘要:一題目描述空格分隔,逐個反轉二題目描述三題目描述當然也可以用的做,不過用雙指針更快。 LeetCode: 557. Reverse Words in a String III 一、LeetCode: 557. Reverse Words in a String III 題目描述 Given a string, you need to reverse the order of chara...

    lykops 評論0 收藏0

發表評論

0條評論

dongxiawu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<