Description

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:

Solution

public String reverseWords(String s) {
        StringBuilder sb = new StringBuilder();
        for (String str : s.split(" ")) {
            sb.append(reverseString(str.toCharArray())).append(" ");
        }
        return sb.deleteCharAt(sb.length() - 1).toString();
    }

    private String reverseString(char[] s) {
        int p = s.length - 1;
        for (int i = 0; i < s.length / 2; i++) {
            char temp = s[i];
            s[i] = s[p];
            s[p--] = temp;
        }
        return new String(s);
    }