package com.interview.string; /** * Remove consecutive duplicate characters * e.g * AABBCDDAAB -> ABCDAB * ABBBCCD -> ABCD * Test cases * Empty string * all unique * all duplicates * duplicates at certain different places */ public class RemoveConsecutiveDuplicate { public int removeDuplicates(char input[]){ int slow = 0; int fast = 0; int index = 0; while(fast < input.length){ while(fast < input.length && input[slow] == input[fast]){ fast++; } input[index++] = input[slow]; slow = fast; } return index; } public static void main(String args[]){ String str = "AAABBCCDDDEFGH"; char input[] = str.toCharArray(); RemoveConsecutiveDuplicate rcd = new RemoveConsecutiveDuplicate(); int len = rcd.removeDuplicates(input); for(int i=0; i < len; i++){ System.out.print(input[i] + " "); } } }