public class RemoveDuplicateCharsInString {
public static void main (String[] args)
{
char[] input1 ="aabbcccdddd".toCharArray();
char[] input2 ="abbcddaabbcc".toCharArray();
removeDuplicateCharsInString(input1);
removeDuplicateCharsInString(input2);
System.out.println(input1);
System.out.println(input2);
}
public static void removeDuplicateCharsInString(char[] inputArray)
{
if(inputArray == null)
return;
if(inputArray.length < 2)
return;
int originalArrayLength = inputArray.length;
//assumed that we leave the first item in array as is.
int newDuplicateRemovedArrayTail = 1;
for(int i=1; i < inputArray.length; i++)
{
int j = 0;
for(; j< newDuplicateRemovedArrayTail; j++)
{
if( inputArray[j] == inputArray[i])
{
// the current char is exists in the new non-duplicate array. so
Skip it
break;
}
}
if(j == newDuplicateRemovedArrayTail )
{
//means the above search found no matching in the non-duplicate
array.
inputArray[newDuplicateRemovedArrayTail++]= inputArray[i];
}
}
for(int k = newDuplicateRemovedArrayTail ; k < originalArrayLength; k++)
{
//nullify remianing chars.
inputArray[k]=0;
}
}
}
No comments:
Post a Comment