More:【目錄】LeetCode Java實現html
Given an input string, reverse the string word by word.java
Example: app
Input: "", Output: "". the sky is blueblue is sky the
Note:post
Follow up: For C programmers, try to solve it in-place in O(1) space.ui
Use two pointers, startint from the end to the begining of the string to get each word. spa
Make use of StringBuilder to append each word.code
public String reverseWords(String s) { if(s==null || s.length()==0) return s; StringBuilder sb= new StringBuilder(); int j=s.length(); for(int i=s.length()-1;i>=0;i--){ if(s.charAt(i)==' ') j=i; else if(i==0 || s.charAt(i-1)==' '){ if(sb.length()!=0) sb.append(" "); sb.append(s.substring(i,j)); } } return sb.toString(); }
Time complexity : O(n).htm
Space complexity : O(n)blog
1. There is only one space between two words in the reversed string.ip
2. Learn how to use two pointers to get each word.
More:【目錄】LeetCode Java實現