코린이의 소소한 공부노트

[LeetCode/Easy] 557. Reverse Words in a String III 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 557. Reverse Words in a String III

무지맘 2022. 12. 2. 00:28

1. Input

1) 문자열 s

 

2. Output

1) s에서 단어별로 앞뒤를 뒤집은 문장을 담은 문자열

 

3. Constraint

1) 1 <= s.length <= 5 * 104

2) s에는 단어가 1개 이상 있다.

3) 모든 단어들은 공백 문자 1개로 구분되어 있다.

4) 공백 문자는 단어를 구분짓는 용도 외에는 쓰이지 않는다.

 

4. Example

Input: s=“Thank you” -> Output: “knahT uoy”

 

5. Code

1) 첫 코드(2022/06/14)

String[] words = s.split(" ");
String result = "";

for(int i=0 ; i<words.length ; i++){
    String tmp = "";
    for(int j=0 ; j<words[i].length() ; j++){
        tmp += words[i].charAt(words[i].length()-1-j) + "";
    } // for j
    result += tmp + " ";
} // for i

return result.substring(0, result.length()-1);

2) 다시 풀어본 코드(2022/12/02)

String[] words = s.split(" ");
for(int i=0 ; i<words.length ; i++){
    char[] c = words[i].toCharArray();
    for(int j=0 ; j<c.length/2 ; j++){
        char tmp = c[j];
        c[j] = c[c.length-1-j];
        c[c.length-1-j] = tmp;
    } // for j
    words[i] = new String(c);
} // for i
return String.join(" ", words);

  - 1번보다 빠르고, 공간절약도 많이 한다.