题目:反转字符串中的单词 III
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例:
输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
思考:
首先根据空格将字符串分割,然后将每一个子串翻转,再把所有子串拼接,中间加上空格,最后一个空格需要去掉。
实现:
class Solution {
public String reverseWords(String s) {
String[] split = s.split(" ");
String[] result = new String[split.length];
for (int count = 0; count<split.length; count++) {
result[count] = reverseString(split[count].toCharArray());
}
String resultStr = "";
for (int count = 0; count < result.length; count++) {
resultStr += result[count] + " ";
}
return resultStr.substring(0, resultStr.length() - 1);
}
public String reverseString(char[] s) {
for (int i = 0; i < s.length / 2; i++) {
s[i] = (char) (s[i] ^ s[s.length - 1 - i]);
s[s.length - 1 - i] = (char) (s[i] ^ s[s.length - 1 - i]);
s[i] = (char) (s[i] ^ s[s.length - 1 - i]);
}
return new String(s);
}
}