[LC] 151. Reverse Words in a String
2024-08-28 02:41:55
Given an input string, reverse the string word by word.
Example 1:
Input: "the sky is blue
"
Output: "blue is sky the
"
Example 2:
Input: " hello world! "
Output: "world! hello"
Explanation: Your reversed string should not contain leading or trailing spaces. Solution 1:
class Solution {
public String reverseWords(String s) {
if (s == null || s.length() == 0) {
return "";
}
char[] charArr = s.toCharArray();
swap(charArr, 0, s.length() - 1);
int i = 0, start = 0;
while (i < s.length()) {
if (i == 0 || charArr[i - 1] == ' ') {
start = i;
} if (i == charArr.length - 1 || charArr[i + 1] == ' ') {
swap(charArr, start, i);
}
i += 1;
} // need to trim space inside
int slow = 0;
for (int j = 0; j < charArr.length; j++) {
if (charArr[j] == ' ' && (j == 0 || charArr[j - 1] == ' ')) {
continue;
}
charArr[slow++] = charArr[j];
}
return new String(charArr, 0, slow).trim();
} private void swap(char[] charArr, int i, int j) {
while (i < j) {
char tmp = charArr[i];
charArr[i] = charArr[j];
charArr[j] = tmp;
i += 1;
j -= 1;
}
}
}
Solution 2:
class Solution {
public String reverseWords(String s) {
if (s == null || s.length() == 0) {
return "";
}
String[] strArr = s.split("\\s+");
StringBuilder sb = new StringBuilder();
for (int i = strArr.length - 1; i >= 0; i--) {
sb.append(strArr[i] + " ");
}
return sb.toString().trim();
}
}
最新文章
- 《UML大战需求分析》阅读随笔(二)
- linux heartbeat v2/v3 的一点资料
- oracle一条sql语句统计充值表中今天,昨天,前天三天充值记录
- Hive(六):HQL DDL
- Odoo Qweb报表css丢失问题
- SharePoint的安装配置
- [Node.js] Creating JWTs (JSON Web Tokens) in Node
- iOS开发UI篇——九宫格坐标计算
- Oracle Database Instant Client 11g 32位和64位 安装包发布
- linux yum安装mongodb
- UIAlertController 自定义输入框及KVO监听
- 【Android Developers Training】 55. 序言:高效显示位图
- 关于celery django django-celery版的搭配的报错问题及解决方法
- 实战DeviceIoControl 之二:获取软盘/硬盘/光盘的参数
- 搭建apache本地服务器&#183;Win
- Mysql 监控脚本
- vuex 子组件传值
- What is the $ symbol used for in JavaScript
- spring boot 整合redis --sea 方式1
- PHP 操作Mongodb 实例
热门文章
- POJ 2251:Dungeon Master
- 第22章—开启HTTPS
- xv6 系统调用
- 刷题32. Longest Valid Parentheses
- 直击JDD | 徐雷:智能化零售,以技术为驱动力的突破路径
- linux下springboot项目通过jetty发布war包应用
- What is the maximum length of a URL in different browsers?
- javaweb学习——JDBC(五)
- PAT Advanced 1127 ZigZagging on a Tree (30) [中序后序建树,层序遍历]
- UML-操作契约是什么?