Dado un número entero, elimine los dígitos repetidos consecutivos de él.
Ejemplos:
Input: x = 12224 Output: 124 Input: x = 124422 Output: 1242 Input: x = 11332 Output: 132
Necesitamos procesar todos los dígitos de n y eliminar las representaciones consecutivas. Podemos recorrer todos los dígitos dividiendo repetidamente n entre 10 y tomando 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>
Producción
124
Complejidad temporal: O(log 10 n)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA