LF.79.Remove Adjacent Repeated Characters I

Posted davidnyc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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     }

 

以上是关于LF.79.Remove Adjacent Repeated Characters I的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Wordpress 中使用 get_adjacent_post 显示关联类别

vbscript unempty_row_adjacent

C. Remove Adjacent

adjacent_difference

adjacent_diffenerce

SAP ABAP delete adjacent duplicates 坑