LeetCode 75: 151. Reverse Words in a String

김준수·2024년 2월 15일
0

LeetCode 75

목록 보기
6/63
post-custom-banner

151. Reverse Words in a String

Description

Given an input string s

s will be separated by at least one space.

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

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.

번역

문자열 s가 주어집니다.

s는 한개 이상의 공백으로 구분됩니다.

주어진 문자열 s를 단어 단위로 구분하고, 단어들을 기존순서에서 역순으로 뒤집고 사이사이에 공백을 넣어서 합친 문자열을 return합니다.

s는 두 단어 사이에 한 개 또는 여러 개의 공백을 포함할 수 있습니다. 반환된 문자열에는 단어를 구분하는 단일 공백만 있어야 합니다. 추가 공백을 포함하지 마십시오.

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.

Constraints:

  • 1 <= s.length <= 104
  • s contains English letters (upper-case and lower-case), digits, and spaces ' '.
  • There is at least one word in s.

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

Solution

class Solution {
    public String reverseWords(String s) {
        String[] sArray = s.strip().split(" +");

        StringBuffer sb = new StringBuffer();
        for (int i = sArray.length - 1; i > 0; i--) {
            sb.append(sArray[i]);
            sb.append(" ");
        }
        sb.append(sArray[0]);

        return sb.toString();
    }
}
post-custom-banner

0개의 댓글