LeetCode 557. Reverse Words in a String III

原题链接在这里:https://leetcode.com/problems/reverse-words-in-a-string-iii/#/description

题目:

Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.

Example 1:

Input: "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"

Note: In the string, each word is separated by single space and there will not be any extra space in the string.

题解:

遇到空格就把之前标记的部分reverse. 

Note: 最后一次reverse别忘了.

Time Complexity: O(n), n = s.length().

Space: O(n), char array.

AC Java:

复制代码
 1 class Solution {
 2     public String reverseWords(String s) {
 3         if(s == null || s.length() == 0){
 4             return s;
 5         }
 6         
 7         int len = s.length();
 8         char [] charArr = s.toCharArray();
 9         
10         int lo = 0;
11         for(int i = 0; i<=len; i++){
12             if(i==len || charArr[i]==' '){
13                 reverse(charArr, lo, i-1);
14                 lo = i+1;
15             }
16         }
17         
18         return new String(charArr);
19     }
20     
21     private void reverse(char [] s, int i, int j){
22         while(i < j){
23             swap(s, i++, j--);
24         }
25     }
26     
27     private void swap(char [] s, int i, int j){
28         char temp = s[i];
29         s[i] = s[j];
30         s[j] = temp;
31     }
32 }
复制代码

类似Reverse String II

posted @   Dylan_Java_NYC  阅读(368)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示