본문 바로가기
Algorithm/LeetCode

💯 Daily LeetCode Challenge Day_15 - Reverse Words in a String

by HaningYa 2020. 7. 16.
728x90

 

Explore - LeetCode

LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore.

leetcode.com


문제

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

Example 1:
Input: "the sky is blue"
Output: "blue is sky the"

Example 2:
Input: "  hello world!  "
Output: "world! hello"
Explanation: Your reversed string should not contain leading or trailing spaces.

Example 3:

Input: "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.

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.


공백으로 문자열을 쪼갠다.

공백을 없앤다.

반대 순서대로 문자열을 만들며 공백 하나씩 넣어준다.

문자열 끝 공백을 없애서 return 한다.

class Solution {
    func reverseWords(_ s: String) -> String {
        var answer = ""
        var arr = s.components(separatedBy: " ")
        print(arr)
        for i in 0..<arr.count {
            arr[i] = arr[i].replacingOccurrences(of: " ", with: "")
        }
        for i in (0..<arr.count).reversed() {
            if arr[i] != "" {
                answer.append(arr[i] + " ")
            }
        }
        return answer.trimmingCharacters(in: .whitespacesAndNewlines)


    }
}

 

 

 

 

728x90

댓글