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

本文共 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

你可能感兴趣的文章
[Unity3D]Unity3D游戏开发MatchTarget的作用攀登效果实现
查看>>
ACdream 1115 Salmon And Cat (找规律&amp;&amp;打表)
查看>>
AngularJS学习篇(一)
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
css3动画——基本准则
查看>>
javaweb常识
查看>>
Java注解
查看>>
web自己主动保存表单
查看>>
一个小的日常实践——高速Fibonacci数算法
查看>>
机器学些技法(9)--Decision Tree
查看>>
drf权限组件
查看>>
输入月份和日期,得出是今年第几天
查看>>
【linux】重置fedora root密码
查看>>
pig自定义UDF
查看>>
Kubernetes 运维学习笔记
查看>>
Spark MLlib 之 Naive Bayes
查看>>
spring security 11种过滤器介绍
查看>>
树链剖分入门
查看>>
图解算法时间复杂度
查看>>
UI_搭建MVC
查看>>