zoukankan      html  css  js  c++  java
  • LeetCode-Reverse Words in a String II

    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?

    Analysis:

    We reverse the whole string first, and then reverse each word again.

    Solution:

    public class Solution {
        public void reverseWords(char[] s) {
            reverse(s,0,s.length-1);
    
            int p1=0,p2=0;
            while (p1 < s.length){
                p2 = p1;
                while (p2 < s.length && s[p2]!=' '){
                    p2++;
                }
                reverse(s,p1,p2-1);
                p1 = p2+1;
            }
        }
    
        public void reverse(char[] s, int start, int end){
            while (start < end){
                char temp = s[start];
                s[start++] = s[end];
                s[end--] = temp;
            }
        }
    }
  • 相关阅读:
    CISCO一些基本配置
    每日学习
    每日学习(个人作业2)
    每日学习
    团队冲刺第十四天
    每日学习
    团队冲刺第十三天
    每日学习
    团队冲刺第十二天
    2021.5.26
  • 原文地址:https://www.cnblogs.com/lishiblog/p/5821617.html
Copyright © 2011-2022 走看看