zoukankan      html  css  js  c++  java
  • 186. Reverse Words in a String II 翻转有空格的单词串 里面不变

    [抄题]:

    Given an input string , reverse the string word by word. 

    Example:

    Input:  ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"]
    Output: ["b","l","u","e"," ","i","s"," ","s","k","y"," ","t","h","e"]

     [暴力解法]:

    时间分析:

    空间分析:

     [优化后]:

    时间分析:

    空间分析:

    [奇葩输出条件]:

    [奇葩corner case]:

    [思维问题]:

    [英文数据结构或算法,为什么不用别的数据结构或算法]:

    [一句话思路]:

    全转+空格前单词转+最后一个补转

    [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

    [画图]:

    [一刷]:

    [二刷]:

    [三刷]:

    [四刷]:

    [五刷]:

      [五分钟肉眼debug的结果]:

    [总结]:

    <n时,第n位是不被处理的。需要补充翻转

    [复杂度]:Time complexity: O(n) Space complexity: O(1)

    [算法思想:迭代/递归/分治/贪心]:

    [关键模板化代码]:

    [其他解法]:

    [Follow Up]:

    [LC给出的题目变变变]:

     [代码风格] :

     [是否头一次写此类driver funcion的代码] :

     [潜台词] :

    class Solution {
        public void reverseWords(char[] str) {
            //cc
            if (str == null || str.length == 0) return ;
            
            //3 step3: reverse the whole, word, last
            reverse(str, 0, str.length - 1);
            
            int wordStart = 0;
            for (int i = 0; i < str.length; i++) {
                if (str[i] == ' ') {
                    reverse(str, wordStart, i - 1);
                    wordStart = i + 1;
                }
            }
            
            reverse(str, wordStart, str.length - 1);
        }
        
        public void reverse(char[] str, int start, int end) {
            //do in a while loop
            while (start < end) {
                char temp = str[start];
                str[start] = str[end];
                str[end] = temp;
                
                start++;
                end--;
            }
        }
    }
    View Code
  • 相关阅读:
    PAT(B) 1037 在霍格沃茨找零钱(Java)
    PAT(B) 1043 输出PATest(Java)统计
    PAT(B) 1063 计算谱半径(Java)
    绘制虚线
    contentMode
    数字签名是什么
    动态设置 button的 name 的话 闪动的问题 解决
    setValuesForKeysWithDictionary 的用法
    获得 当前时间
    iOS 键盘类型
  • 原文地址:https://www.cnblogs.com/immiao0319/p/9393341.html
Copyright © 2011-2022 走看看