博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode Reverse Words in a String II
阅读量:5371 次
发布时间:2019-06-15

本文共 1276 字,大约阅读时间需要 4 分钟。

原题链接在这里:

题目:

Given an input string, reverse the string word by word. A word is defined as a sequence of non-space characters.

The input string does not contain leading or trailing spaces and the words are always separated by a single space.

For example,

Given s = "the sky is blue",
return "blue is sky the".

Could you do it in-place without allocating extra space?

Related problem: 

题解:

类似. input变成 char array. 

先reverse 全部 char array. 从头往后走,遇到空格或者array尾部,就reverse中间的单词.

Time Compelxity: O(s.length()). Space: O(1).

AC Java:

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

跟上.

转载于:https://www.cnblogs.com/Dylan-Java-NYC/p/5246475.html

你可能感兴趣的文章
mongodb
查看>>
SSH-struts2的异常处理
查看>>
《30天自制操作系统》学习笔记--第14天
查看>>
LGPL协议的理解
查看>>
1、Python基础
查看>>
Unity The Tag Attribute Matching Rule
查看>>
试着理解下kvm
查看>>
WebService学习总结(二)--使用JDK开发WebService
查看>>
Tizen参考手机RD-210和RD-PQ
查看>>
竞价广告系统-位置拍卖理论
查看>>
策略模式 C#
查看>>
[模板]树状数组
查看>>
[HDU 6447][2018CCPC网络选拔赛 1010][YJJ's Salesman][离散化+线段树+DP]
查看>>
设计模式学习的好方法
查看>>
感谢Leslie Ma
查看>>
几种排序方法
查看>>
查看数据库各表的信息
查看>>
第一阶段测试题
查看>>
第二轮冲刺第五天
查看>>
图片压缩
查看>>