class RemoveConsecutiveChar {
public static void main
(String[] args
) { // TODO Auto-generated method stub
String str
= "dfffaaaaaghkklllllmaaannnnn";
int currLength = 0;
int prevPos = 0;
int currPos = 0;
while ( currPos < str.length()) {
if ( str.charAt(prevPos) == str.charAt(currPos)) {
currLength++;
currPos++;
}
else if ( currLength > 1) {
str = str.substring(0 , prevPos) + str.substring(prevPos + currLength );
prevPos = prevPos - 1 > 0 ? prevPos - 1 : 0;
currPos = prevPos;
currLength = 0;
}
else {
prevPos = currPos;
currLength = 0;
}
}
if ( currLength > 1) {
str = str.substring(0 , prevPos) + str.substring(prevPos + currLength );
}
}
}
IGNsYXNzIFJlbW92ZUNvbnNlY3V0aXZlQ2hhciB7CgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCS8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKCQlTdHJpbmcgc3RyID0gImRmZmZhYWFhYWdoa2tsbGxsbG1hYWFubm5ubiI7CgkJCgkJaW50IGN1cnJMZW5ndGggPSAwOwoJCWludCBwcmV2UG9zID0gMDsKCQlpbnQgY3VyclBvcyA9IDA7CgkJd2hpbGUgKCBjdXJyUG9zIDwgc3RyLmxlbmd0aCgpKQl7CgkJCWlmICggc3RyLmNoYXJBdChwcmV2UG9zKSA9PSBzdHIuY2hhckF0KGN1cnJQb3MpKQl7CgkJCQljdXJyTGVuZ3RoKys7CgkJCQljdXJyUG9zKys7CgkJCX0KCQkJZWxzZSBpZiAoIGN1cnJMZW5ndGggPiAxKQl7CgkJCQlzdHIgPSBzdHIuc3Vic3RyaW5nKDAgLCBwcmV2UG9zKSArIHN0ci5zdWJzdHJpbmcocHJldlBvcyArIGN1cnJMZW5ndGggKTsKCQkJCXByZXZQb3MgPSBwcmV2UG9zIC0gMSA+IDAgPyBwcmV2UG9zIC0gMSA6IDA7CgkJCQljdXJyUG9zID0gcHJldlBvczsKCQkJCWN1cnJMZW5ndGggPSAwOwoJCQl9CgkJCWVsc2UJewoJCQkJcHJldlBvcyA9IGN1cnJQb3M7CgkJCQljdXJyTGVuZ3RoID0gMDsKCQkJfQoJCX0KCQkKCQlpZiAoIGN1cnJMZW5ndGggPiAxKQl7CgkJCXN0ciA9IHN0ci5zdWJzdHJpbmcoMCAsIHByZXZQb3MpICsgc3RyLnN1YnN0cmluZyhwcmV2UG9zICsgY3Vyckxlbmd0aCApOwoJCX0KCQkKCQlTeXN0ZW0ub3V0LnByaW50bG4oc3RyKTsKCX0KCn0K