LeetCode - Reverse Words in a String III

2022. 7. 16. 22:16STUDY/LeetCode

반응형

허잉 ㅜㅜ 

Given a string s, reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.

Example 1:

Input: s = "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"

Example 2:

Input: s = "God Ding"
Output: "doG gniD"

Constraints:

  • 1 <= s.length <= 5 * 104
  • s contains printable ASCII characters.
  • s does not contain any leading or trailing spaces.
  • There is at least one word in s.
  • All the words in s are separated by a single space.

띄어쓰기를 중심으로 단어를 역순해서 출력한다.

void reverse(char *s, int left, int right) {
    char tmp;
    while(left < right) {
        tmp = s[left];
        s[left] = s[right];
        s[right] = tmp;
        left++;
        right--;
    }
}

char* reverseWords(char *s) {
    int left, right, len = strlen(s);
    left = right = 0;

    while(1) {
        if(right >= len -1) return s;

        while(s[left] == ' ') { 
            // start index of next word
            left++;
        }
        right = left;
        while(s[right] != ' ' && right < len) {
            // start counting next word's end index.
            right++;
        }
        reverse(s, left, right-1);
        left = right;
    }   
    
}

 

 

728x90
반응형

'STUDY > LeetCode' 카테고리의 다른 글

LeetCode - 733. Flood Fill  (0) 2022.07.17
LeetCode - 19. Remove Nth Node From End of List  (1) 2022.07.16
LeetCode - 876. Middle of the Linked List  (0) 2022.07.16
LeetCode 189. Rotate Array  (4) 2022.07.08
LeetCode - 704. Binary Search  (1) 2022.07.07