问题列表
| 序号 | 题目 | 完成 |
|---|---|---|
| 滑动窗口 | 3. 无重复字符的最长子串 | ✅ |
| 151. 翻转字符串里的单词 | ✅ | |
| 8. 字符串转换整数 (atoi) | ||
| 5. 最长回文子串 | ||
| 72. 编辑距离 | ||
| 93. 复原IP地址 | ||
| 91. 解码方法 | ||
| 415. 字符串相加 | ||
| 468. 验证IP地址 | ||
| 273. 整数转换英文表示 | ||
| 76. 最小覆盖子串 | ||
| 227. 基本计算器 II | ||
| 1233. 删除子文件夹 | ||
| 10. 正则表达式匹配 | ||
| 43. 字符串相乘 |
括号相关
参考:括号
翻转字符串
class Solution {
public String reverseWords(String s) {
int right = s.length() - 1;
StringBuilder sb = new StringBuilder();
// 从后往前遍历
while (right >= 0) {
// 删除后面的空格
while (right >= 0 && s.charAt(right) == ' ') {
right--;
}
//
if (right < 0) {
break;
}
// 找到单词开始位置
int left = right;
while (left >= 0 && s.charAt(left) != ' ') {
left--;
}
// 找到了一个单词
sb.append(s.substring(left + 1, right + 1)).append(" ");
// 继续找
right = left;
}
// 删除末尾的空格
return sb.charAt(sb.length() - 1) == ' ' ? sb.deleteCharAt(sb.length() - 1).toString() : sb.toString();
}
}