LeetCode 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 String II類似。原題中提到沒有多余的space, 所以降低了難度.
遇到空格就把之前標記的部分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 }?
轉載于:https://www.cnblogs.com/Dylan-Java-NYC/p/7015653.html
總結
以上是生活随笔為你收集整理的LeetCode Reverse Words in a String III的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浦发美丽女人卡之咪蒙卡额度一般是多少?有
- 下一篇: 自己整理的openresty安装步骤