Remove repeated digits in a given number
Last Updated :
27 Jun, 2022
Given an integer, remove consecutive repeated digits from it.
Examples:
Input: x = 12224
Output: 124
Input: x = 124422
Output: 1242
Input: x = 11332
Output: 132
We need to process all digits of n and remove consecutive representations. We can go through all digits by repeatedly dividing n with 10 and taking n%10.
C++
// C++ program to remove repeated digits
#include <iostream>
using namespace std;
long int removeRecur(long int n)
{
// Store first digits as previous digit
int prev_digit = n % 10;
// Initialize power
long int pow = 10;
long int res = prev_digit;
// Iterate through all digits of n, note that
// the digits are processed from least significant
// digit to most significant digit.
while (n) {
// Store current digit
int curr_digit = n % 10;
if (curr_digit != prev_digit) {
// Add the current digit to the beginning
// of result
res += curr_digit * pow;
// Update previous result and power
prev_digit = curr_digit;
pow *= 10;
}
// Remove last digit from n
n = n / 10;
}
return res;
}
// Driver program
int main()
{
long int n = 12224;
cout << removeRecur(n);
return 0;
}
Java
// Java program to remove repeated digits
import java.io.*;
class GFG {
static long removeRecur(long n)
{
// Store first digits as previous
// digit
long prev_digit = n % 10;
// Initialize power
long pow = 10;
long res = prev_digit;
// Iterate through all digits of n,
// note that the digits are
// processed from least significant
// digit to most significant digit.
while (n>0) {
// Store current digit
long curr_digit = n % 10;
if (curr_digit != prev_digit)
{
// Add the current digit to
// the beginning of result
res += curr_digit * pow;
// Update previous result
// and power
prev_digit = curr_digit;
pow *= 10;
}
// Remove last digit from n
n = n / 10;
}
return res;
}
// Driver program
public static void main (String[] args)
{
long n = 12224;
System.out.println(removeRecur(n));
}
}
// This code is contributed by anuj_67.
Python3
# Python 3 program to remove repeated digits
def removeRecur(n):
# Store first digits as previous digit
prev_digit = n % 10
# Initialize power
pow = 10
res = prev_digit
# Iterate through all digits of n, note
# that the digits are processed from
# least significant digit to most
# significant digit.
while (n):
# Store current digit
curr_digit = n % 10
if (curr_digit != prev_digit):
# Add the current digit to the
# beginning of result
res += curr_digit * pow
# Update previous result and power
prev_digit = curr_digit
pow *= 10
# Remove last digit from n
n = int(n / 10)
return res
# Driver Code
if __name__ == '__main__':
n = 12224
print(removeRecur(n))
# This code is contributed by
# Surendra_Gangwar
C#
// C# program to remove repeated digits
using System;
class GFG {
static long removeRecur(long n)
{
// Store first digits as previous
// digit
long prev_digit = n % 10;
// Initialize power
long pow = 10;
long res = prev_digit;
// Iterate through all digits of n,
// note that the digits are
// processed from least significant
// digit to most significant digit.
while (n > 0) {
// Store current digit
long curr_digit = n % 10;
if (curr_digit != prev_digit)
{
// Add the current digit to
// the beginning of result
res += curr_digit * pow;
// Update previous result
// and power
prev_digit = curr_digit;
pow *= 10;
}
// Remove last digit from n
n = n / 10;
}
return res;
}
// Driver program
public static void Main ()
{
long n = 12224;
Console.WriteLine(removeRecur(n));
}
}
// This code is contributed by anuj_67.
PHP
<?php
// PHP program to remove
// repeated digits
function removeRecur($n)
{
// Store first digits
// as previous digit
$prev_digit = $n % 10;
// Initialize power
$pow = 10;
$res = $prev_digit;
// Iterate through all digits
// of n, note that the digits
// are processed from least
// significant digit to most
// significant digit.
while ($n)
{
// Store current digit
$curr_digit = $n%10;
if ($curr_digit != $prev_digit)
{
// Add the current digit
// to the beginning of
// result
$res += $curr_digit * $pow;
// Update previous result
// and power
$prev_digit = $curr_digit;
$pow *= 10;
}
// Remove last digit
// from n
$n = $n / 10;
}
return $res;
}
// Driver Code
$n = 12224;
echo removeRecur($n);
// This code is contributed by ajit.
?>
JavaScript
<script>
// Javascript program to
// remove repeated digits
function removeRecur(n)
{
// Store first digits as previous
// digit
let prev_digit = n % 10;
// Initialize power
let pow = 10;
let res = prev_digit;
// Iterate through all digits of n,
// note that the digits are
// processed from least significant
// digit to most significant digit.
while (n > 0) {
// Store current digit
let curr_digit = n % 10;
if (curr_digit != prev_digit)
{
// Add the current digit to
// the beginning of result
res += curr_digit * pow;
// Update previous result
// and power
prev_digit = curr_digit;
pow *= 10;
}
// Remove last digit from n
n = parseInt(n / 10, 10);
}
return res;
}
let n = 12224;
document.write(removeRecur(n));
</script>
Time Complexity: O(log10n)
Auxiliary Space: O(1)
Explore
DSA Fundamentals
Data Structures
Algorithms
Advanced
Interview Preparation
Practice Problem