题目描述:
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
解题思路:
先将字符串以空格分隔,将单词转换为字符串数组,然后分别将每个单词进行反转。
反转后再将各个单词拼接起来,以空格连接。
注意:在追加最后一个单词时,不需要再添加空格。
代码实现:
class Solution {
//反转字符串方法
public static String reverseString(String s) {
char[] array = s.toCharArray();
char temp = 't';
int i = 0;
int j = array.length - 1;
while(i <= j) {
temp = array[i];
array[i] = array[j];
array[j] = temp;
i++;
j--;
}
return new String(array);
}
public static String reverseWords(String s) {
//单词分割
String[] words = s.split(" ");
//单词个数
int count = words.length;
StringBuilder builder = new StringBuilder();
for (int i = 0; i < count; i++) {
builder.append(reverseString(words[i]));
if(i != count - 1) {
builder.append(" ");
}
}
return builder.toString();
}
}
运行结果: