摘要:公眾號愛寫給定一個字符串,你需要反轉字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。示例輸入輸出注意在字符串中,每個單詞由單個空格分隔,并且字符串中不會有任何額外的空格。
公眾號:愛寫bug(ID:icodebugs)
給定一個字符串,你需要反轉字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。
Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.
示例 1:
輸入: "Let"s take LeetCode contest" 輸出: "s"teL ekat edoCteeL tsetnoc"
注意:在字符串中,每個單詞由單個空格分隔,并且字符串中不會有任何額外的空格。
Note: In the string, each word is separated by single space and there will not be any extra space in the string.
解題思路:? 每次遇到空格字符,就把 從上一次空格字符開始到該空格字符止之間的所有字符反轉一下即可,只需要注意最后一個字符結束時,并不是空格字符,要再加一個判斷是否是已經索引到最后一位。
"abc def" 原字符串 ["a" , "b" , "c" , " " , "d" , "e" ,"f"] 轉成char[]型數組 ["c" , "b" , "a" , " "...] 遍歷數組,遇到第一個空格,把該空格到上個空格之間的字母反轉 [... " " , "d" , "e" ,"f"] 遍歷到最后一位,不是空格,依然要反轉到前一個空格間的字母 [... " " , "f" , "d" ,"e"] 反轉 "cba fde" 轉成字符串輸出Java:
class Solution { public String reverseWords(String s) { int sLen = s.length(), k = 0, j = 0;//j記錄空格字符前的索引位置 char strs[] = s.toCharArray(), temp;//轉為字符數組 for (int i = 0; i < sLen; i++) { if (strs[i] == " ") j = i - 1;//遇到空格字符j值減1,為截取的字母段的最后一個字母的索引 else if (i == sLen - 1) j = i;//如果到最后一位,則j值不應該再減1 else continue; for (; j >= k; j--, k++) {//交換位置 temp = strs[j]; strs[j] = strs[k]; strs[k] = temp; } k = i + 1;//k記錄空格字符后的索引位置 } return String.valueOf(strs); } }
python不再復現上述定義指針解題的思路,這里再次投機取巧,利用 python 切片特性及 split() 、join() 函數解題,解題思路:
"abc def gh" 原字符串 "hg fed cba" 切片特性反轉字符串 ["hg" , "fed" , "cba"] split()分割字符串 ["cba" , "fed" , "hg"] 切片反轉數組 "cba fed hg" 拼接成字符串Python3:
class Solution: def reverseWords(self, s: str) -> str: return " ".join(s[::-1].split()[::-1])
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75326.html
摘要:公眾號愛寫給定一個字符串,你需要反轉字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。示例輸入輸出注意在字符串中,每個單詞由單個空格分隔,并且字符串中不會有任何額外的空格。 公眾號:愛寫bug(ID:icodebugs) 給定一個字符串,你需要反轉字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。 Given a string, you need to revers...
Problem Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order. Example 1:Input: Lets take LeetCode contest...
摘要:題目鏈接題目分析題目要求把句子中的每個單詞都倒轉過來。思路這個很簡單,用空格把句子分割,再用把字符串倒轉過來,拼接起來就可以了。最終代碼若覺得本文章對你有用,歡迎用愛發電資助。 557. Reverse Words in a String III 題目鏈接 557. Reverse Words in a String III 題目分析 題目要求把句子中的每個單詞都倒轉過來。 思路 這個...
摘要:一題目描述空格分隔,逐個反轉二題目描述三題目描述當然也可以用的做,不過用雙指針更快。 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...
摘要:第題反轉字符串中的單詞給定一個字符串,你需要反轉字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。示例輸入輸出注意在字符串中,每個單詞由單個空格分隔,并且字符串中不會有任何額外的空格。 LeetCode 第557題 557. 反轉字符串中的單詞 III 給定一個字符串,你需要反轉字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。 示例 1: 輸入: Lets tak...
閱讀 2968·2023-04-25 19:45
閱讀 2690·2021-11-19 09:40
閱讀 690·2021-10-14 09:49
閱讀 2667·2021-09-30 09:47
閱讀 2201·2021-09-26 09:55
閱讀 1220·2021-09-22 16:01
閱讀 2809·2019-08-30 14:19
閱讀 706·2019-08-29 16:44