zoukankan      html  css  js  c++  java
  • LF.79.Remove Adjacent Repeated Characters I

    Remove adjacent, repeated characters in a given string, leaving only one character for each group of such characters.

    Assumptions

    Try to do it in place.
    Examples

    “aaaabbbc” is transferred to “abc”
    Corner Cases

    If the given string is null, we do not need to do anything.

    * */
    /*
    Try to do it in place.
    这是重要的不让用字典的提示


     1 public String deDup(String input) {
     2         // Write your solution here
     3         if (input == null || input.length() == 0){
     4             return input ;
     5         }
     6         char[] inputs = input.toCharArray() ;
     7         char[] res = new char[input.length()] ;
     8         //valid area is [0, slow]
     9         int slow = 0, fast = 0;
    10         while (fast < inputs.length){
    11             if (inputs[fast] != inputs[slow]) {
    12                 /*  f f
    13                     a b c
    14                     s
    15                     这里我们要先移动SLOW 然后赋予新值,否则原先的 A 就会被覆盖掉
    16                 * */
    17                 inputs[++slow] = inputs[fast++];
    18             } else{
    19                 fast++ ;
    20             }
    21         }
    22         //special notice here, slow+1 参考上面的分析,每次SLOW 都是要包括的真实index!!! 所以长度是要SLOW+1
    23         return new String(res, 0, slow+1) ;
    24     }
  • 相关阅读:
    ADO之connection
    函数及自定义函数
    母版页
    XHTML5 与 HTML 4.01的差异
    三层架构的使用
    ExecuteNonQuery&& ExecuteQuery 区别
    常用数据结构的时间复杂度
    图像处理(卷积)作者太棒了
    C#中标准Dispose模式的实现
    计算机网络知识点
  • 原文地址:https://www.cnblogs.com/davidnyc/p/8722088.html
Copyright © 2011-2022 走看看