151.翻转字符串里的单词
题目链接:力扣题目链接
思路:双指针一前一后,前向前移动到空格然后for循环翻入新的char列表中,后指针等于前指针,前指针继续向前移动一次类推,最终完成。
class Solution {
public String reverseWords(String s) {
StringBuilder result = new StringBuilder();
int len = s.length();
int back = len;
for (int pre = len - 1; pre >= 0; pre--) {
back = pre; // 更新 back
} else if (pre == 0 || s.charAt(pre - 1) == ' ') {
for (int i = pre; i < back; i++) {
result.append(s.charAt(i));
}
result.append(' ');
back = pre;
}
}
return result.toString().trim(); // 修正:去除字符串首尾的多余空格
}
}
卡码网:55.右旋转字符串
题目链接:卡码网题目链接
思路:先找到k的位置到结尾填入新的Stringbuilder,最后之前字符串0到k即可。
其他:可以0到k-1和k到末尾先局部反转,最后再全部反转也可。(图“代码随想录”)
以下总结都来自“代码随想录”
字符串总结:代码随想录
双指针总结:代码随想录
时间1.5h