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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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】