题目描述:
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
解题思路:
- 首先写一个反转部分字符串的工具方法。
- 将字符串转换为字符数组。然后从前往后遍历,第一个不是空格的字符,或空格后面的第一个字符座位需要反转的字符串的首字符。最后一个不是空格字符或者空格的上一个非空格字符,作为需要反转的字符串的尾字符。然后进行对给字符串进行反转操作。
- 从前往后遍历,将所有被空格分开的字符串反转。
- 完成以上操作后,将字符数组转为字符串,然后返回该字符串。
实现过程:
//反转部分字符串的工具方法
public static void reverseString(char[] s, int l, int r) {
int n = s.length;
if (n <= 1) {
return;
}
while (l < r) {
char temp = s[l];
s[l] = s[r];
s[r] = temp;
l++;
r