LeetCode: 557. Reverse Words in a String III
Given a string, you need to reverse the order of characters in each
word within a sentence while still preserving whitespace and initial
word order.Example 1:
Input: “Let’s take LeetCode contest” Output: “s’teL ekat edoCteeL
tsetnoc”Note: In the string, each word is separated by single space and there
will not be any extra space in the string.
public class Solution {
public String reverseWords(String s) {
if (s == null) return null;
String result = "";
String[] lists = s.split(" ");
for (String list : lists) {
int length = list.length();
int half = (int) (length / 2);
String left = "";
String midStr = ((length % 2) == 0) ? "" : list.substring(half , half + 1);
String right = "";
for (int i = 0; i < half ; i++) {
left += list.charAt(length - 1 - i);
right = list.charAt(i) + right;
}
result += left + midStr + right + " ";
}
return result.isEmpty() ? "" : result.substring(0, result.length() - 1);
}
}