当前位置:网站首页>leetcode 剑指 Offer 58 - I. 翻转单词顺序
leetcode 剑指 Offer 58 - I. 翻转单词顺序
2022-07-30 08:52:00 【kt1776133839】
题目描述:
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。
样例:
示例 1:
输入: "the sky is blue"
输出: "blue is sky the"
示例 2:
输入: " hello world! "
输出: "world! hello"
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
示例 3:
输入: "a good example"
输出: "example good a"
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
说明:
无空格字符构成一个单词。
输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
解题思路:
双指针
倒序遍历字符串 sss ,记录单词左右索引边界 iii , jjj ;
每确定一个单词的边界,则将其添加至单词列表 resresres ;
最终,将单词列表拼接为字符串,并返回即可。
Java程序:
class Solution {
public String reverseWords(String s) {
s = s.trim(); // 删除首尾空格
int j = s.length() - 1, i = j;
StringBuilder res = new StringBuilder();
while(i >= 0) {
while(i >= 0 && s.charAt(i) != ' ') i--; // 搜索首个空格
res.append(s.substring(i + 1, j + 1) + " "); // 添加单词
while(i >= 0 && s.charAt(i) == ' ') i--; // 跳过单词间空格
j = i; // j 指向下个单词的尾字符
}
return res.toString().trim(); // 转化为字符串并返回
}
}
边栏推荐
猜你喜欢

MySQL Explain usage and parameter detailed explanation

企业数字化建设,自研还是采购?

百度paddleocr检测训练

Two solutions for Excel xlsx file not supported

Jenkins 如何玩转接口自动化测试?

浅论各种调试接口(JTAG、SWD、RDI、Jlink、Ulink、STlink)的区别

Apache DolphinScheduler's new generation of distributed workflow task scheduling platform in practice - Part 1

一文读懂二十种开关电源拓扑结构

【HMS core】【FAQ】HMS Toolkit典型问题合集1

Unreal Engine Graphic Notes: could not be compiled. Try rebuilding from source manually. Problem solving
随机推荐
How to Assemble a Registry
浅论各种调试接口(JTAG、SWD、RDI、Jlink、Ulink、STlink)的区别
代码随想录笔记_哈希_202 快乐数
涛思 TDengine 2.6+优化参数
MySQL [operator]
用示波器揭示以太网传输机制
Integral Topic Notes - Path Independent Conditions
Network/Information Security Top Journal and Related Journals Conference
Farthest Point Sampling - D-FPS vs F-FPS
XP电源维修fleXPower电源X7-2J2J2P-120018系列详解
使用 Neuron 接入 Modbus TCP 及 Modbus RTU 协议设备
qsort 函数的使用及其模拟实现
TreeSet解析
2022/07/29 Study Notes (day19) Exception Handling
HashSet and LinkedHashSet
HCIP --- MPLS VPN实验
20220728使用电脑上的蓝牙和汇承科技的蓝牙模块HC-05配对蓝牙串口传输
C# 之 $ – 字符串内插
经历了这样一个阶段的发展之后,数字零售才能有新的进化
[Yugong Series] July 2022 Go Teaching Course 021-Slicing Operation of Go Containers