# Remove recurring digits in a given number

Given a number as string, remove recurring digits from the given string. The changes must be made in-place. Expected time complexity O(n) and auxiliary space O(1).

Examples:

```Input:  num[] = "1299888833"
Output: num[] = "12983"

Input:  num[] = "1299888833222"
Output: num[] = "129832"
```

We strongly recommend you to minimize your browser and try this yourself first

This problem is similar to Run Length Encoding.

```Let num[] be input number represented as character array

1) Initialize index of modified string 'j' as 0.
2) Traverse input string and do following for every digit num[i].
a) Copy current character 'num[i]' to 'num[j]' and increment i & j.
b) Keep incrementing i while num[i] is same as previous digit.
3) Add string termination character at 'num[j]'
```

Below is C++ implementation of above algorithm.

```// C++ program to remove recurring digits from
// a given number
#include <bits/stdc++.h>
using namespace std;

/* Removes recurring digits in num[]  */
void removeRecurringDigits(char num[])
{
int len = strlen(num);

int j = 0; // Index in modified string

/* Traverse digits of given number one by one */
for (int i=0; i<len; i++)
{
/* Copy the first occurrence of new digit */
num[j++] = num[i];

/* Remove repeating occurrences of digit */
while (i + 1 < len && num[i] == num[i+1])
i++;
}

/* terminate the modified string */
num[j] = '\0';
}

/* Driver program to test above function */
int main()
{
char num[] = "1299888833";
removeRecurringDigits(num);
cout << "Modified number is " << num;
return 0;
}
```

Output:

`Modified number is 12983`

# GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.
1.3 Average Difficulty : 1.3/5.0
Based on 8 vote(s)