LeetCode Reverse Words in a String III

Posted Dylan_Java_NYC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Reverse Words in a String III相关的知识,希望对你有一定的参考价值。

原题链接在这里:https://leetcode.com/problems/reverse-words-in-a-string-iii/#/description

题目:

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: "Let\'s take LeetCode contest"
Output: "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.

题解:

遇到空格就把之前标记的部分reverse. 

Note: 最后一次reverse别忘了.

Time Complexity: O(n), n = s.length().

Space: O(n), char array.

AC Java:

 1 class Solution {
 2     public String reverseWords(String s) {
 3         if(s == null || s.length() == 0){
 4             return s;
 5         }
 6         
 7         int len = s.length();
 8         char [] charArr = s.toCharArray();
 9         
10         int lo = 0;
11         for(int i = 0; i<=len; i++){
12             if(i==len || charArr[i]==\' \'){
13                 reverse(charArr, lo, i-1);
14                 lo = i+1;
15             }
16         }
17         
18         return new String(charArr);
19     }
20     
21     private void reverse(char [] s, int i, int j){
22         while(i < j){
23             swap(s, i++, j--);
24         }
25     }
26     
27     private void swap(char [] s, int i, int j){
28         char temp = s[i];
29         s[i] = s[j];
30         s[j] = temp;
31     }
32 }

类似Reverse String II

以上是关于LeetCode Reverse Words in a String III的主要内容,如果未能解决你的问题,请参考以下文章

Reverse Words in a String leetcode

[LeetCode] Reverse Words in a String II

Leetcode 151. Reverse Words in a String

LeetCode:Reverse Words in a String

LeetCode - Reverse Words in a String II

LeetCode-151-Reverse Words in s String