LeetCode in Net

151. Reverse Words in a String

Medium

Given an input string s, reverse the order of the words.

A word is defined as a sequence of non-space characters. The words in s will be separated by at least one space.

Return a string of the words in reverse order concatenated by a single space.

Note that s may contain leading or trailing spaces or multiple spaces between two words. The returned string should only have a single space separating the words. Do not include any extra spaces.

Example 1:

Input: s = “the sky is blue”

Output: “blue is sky the”

Example 2:

Input: s = “ hello world “

Output: “world hello”

Explanation: Your reversed string should not contain leading or trailing spaces.

Example 3:

Input: s = “a good example”

Output: “example good a”

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

Example 4:

Input: s = “ Bob Loves Alice “

Output: “Alice Loves Bob”

Example 5:

Input: s = “Alice does not even like bob”

Output: “bob like even not does Alice”

Constraints:

Follow-up: If the string data type is mutable in your language, can you solve it in-place with O(1) extra space?

Solution

using System.Text;

public class Solution {
    public string ReverseWords(string s) {
        var sb = new StringBuilder();
        int i = s.Length - 1;
        while (i >= 0) {
            if (s[i] == ' ') {
                i--;
                continue;
            }
            int start = s.LastIndexOf(' ', i);
            sb.Append(' ');
            sb.Append(s, start + 1, i - start);
            i = start - 1;
        }
        if (sb.Length > 0) {
            sb.Remove(0, 1);
        }
        return sb.ToString();
    }
}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy