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++
#include <iostream>
using namespace std;
long int removeRecur( long int n)
{
int prev_digit = n % 10;
long int pow = 10;
long int res = prev_digit;
while (n) {
int curr_digit = n % 10;
if (curr_digit != prev_digit) {
res += curr_digit * pow ;
prev_digit = curr_digit;
pow *= 10;
}
n = n / 10;
}
return res;
}
int main()
{
long int n = 12224;
cout << removeRecur(n);
return 0;
}
|
Java
import java.io.*;
class GFG {
static long removeRecur( long n)
{
long prev_digit = n % 10 ;
long pow = 10 ;
long res = prev_digit;
while (n> 0 ) {
long curr_digit = n % 10 ;
if (curr_digit != prev_digit)
{
res += curr_digit * pow;
prev_digit = curr_digit;
pow *= 10 ;
}
n = n / 10 ;
}
return res;
}
public static void main (String[] args)
{
long n = 12224 ;
System.out.println(removeRecur(n));
}
}
|
Python3
def removeRecur(n):
prev_digit = n % 10
pow = 10
res = prev_digit
while (n):
curr_digit = n % 10
if (curr_digit ! = prev_digit):
res + = curr_digit * pow
prev_digit = curr_digit
pow * = 10
n = int (n / 10 )
return res
if __name__ = = '__main__' :
n = 12224
print (removeRecur(n))
|
C#
using System;
class GFG {
static long removeRecur( long n)
{
long prev_digit = n % 10;
long pow = 10;
long res = prev_digit;
while (n > 0) {
long curr_digit = n % 10;
if (curr_digit != prev_digit)
{
res += curr_digit * pow;
prev_digit = curr_digit;
pow *= 10;
}
n = n / 10;
}
return res;
}
public static void Main ()
{
long n = 12224;
Console.WriteLine(removeRecur(n));
}
}
|
PHP
<?php
function removeRecur( $n )
{
$prev_digit = $n % 10;
$pow = 10;
$res = $prev_digit ;
while ( $n )
{
$curr_digit = $n %10;
if ( $curr_digit != $prev_digit )
{
$res += $curr_digit * $pow ;
$prev_digit = $curr_digit ;
$pow *= 10;
}
$n = $n / 10;
}
return $res ;
}
$n = 12224;
echo removeRecur( $n );
?>
|
Javascript
<script>
function removeRecur(n)
{
let prev_digit = n % 10;
let pow = 10;
let res = prev_digit;
while (n > 0) {
let curr_digit = n % 10;
if (curr_digit != prev_digit)
{
res += curr_digit * pow;
prev_digit = curr_digit;
pow *= 10;
}
n = parseInt(n / 10, 10);
}
return res;
}
let n = 12224;
document.write(removeRecur(n));
</script>
|
Time Complexity: O(log10n)
Auxiliary Space: O(1)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...