Remove repeated digits in a given number

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++



filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}
  
// Drive program
int main()
{
    long int n = 12224;
    cout << removeRecur(n);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
    }
      
    // Drive program
    public static void main (String[] args)
    {
        long n = 12224;
          
        System.out.println(removeRecur(n));
    }
}
  
// This code is contributed by anuj_67.

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
    }
      
    // Drive program
    public static void Main ()
    {
        long n = 12224;
          
        Console.WriteLine(removeRecur(n));
    }
}
  
// This code is contributed by anuj_67.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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 ocde is contributed by ajit.
?>

chevron_right



Output:

124

This article is contributed by Kartik. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above



My Personal Notes arrow_drop_up

Improved By : jit_t, vt_m, SURENDRA_GANGWAR