zoukankan      html  css  js  c++  java
  • 186. 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?

    Related problem: Rotate Array

    此题和rotate array比较像,解题思路也是一样的,代码如下:

    public class Solution {

        public void reverseWords(char[] s) {

            int n =s.length;

            reverse(s,0,n-1);

            int start= 0;

            for(int i=0;i<n;i++){

                if(s[i]==' '){

                    reverse(s,start,i-1);

                    start = i+1;

                }

            }

            reverse(s,start,n-1);

        }

        public void reverse(char[] s,int start,int end){

            while(start<end){

                char temp = s[end];

                s[end] = s[start];

                s[start] = temp;

                start++;

                end--;

            }

        }

    }

  • 相关阅读:
    lvs实现故障转移(backup)
    shell计算
    CEGUI 聊天对话框
    SetRenderState 设置渲染状态【转】
    MFC 弹出对话框
    DrawIndexedPrimitive函数的详细解释【转】
    IDirect3DDevice9::Clear 【转】
    manifest 文件错误
    D3DXMatrixLookAtLH 【转】
    D3D中的网格(Mesh)
  • 原文地址:https://www.cnblogs.com/codeskiller/p/6363917.html
Copyright © 2011-2022 走看看