Recuento de dígitos en N y M que son iguales y están presentes en los mismos índices

Dados dos números N y M , la tarea es encontrar el conteo de dígitos en N y M que son iguales y están presentes en los mismos índices.

Ejemplos:

Entrada: N = 123, M = 321
Salida: 1
Explicación: El dígito 2 cumple la condición

Entrada: N = 123, M = 111
Salida: 1

 

Enfoque: el problema se puede resolver utilizando el enfoque de dos puntos.

  • Convierta N y M para facilitar el recorrido
  • Cree dos punteros donde un puntero apunte al primer dígito de N y el otro al primer dígito de M respectivamente inicialmente.
  • Ahora recorra ambos números de izquierda a derecha y verifique si los dígitos en ambos punteros son iguales o no.
  • En caso afirmativo, aumente la cuenta.
  • Aumente el puntero en 1 en cada iteración.
  • Devuelve el recuento final al final.

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ implementation of the above approach
 
#include <bits/stdc++.h>
using namespace std;
int countDigits(int N, int M)
{
 
    // Convert N and M to string
    // for ease of traversal
    string a = to_string(N), b = to_string(M);
 
    int same_dig_cnt = 0;
 
    // Find the count of digits
    // that are same and occur on same indices
    // in both N and M.
    // Store the count in variable same_dig_cnt
    for (int i = 0; i < a.length() && b.length(); i++)
        if (a[i] == b[i])
            same_dig_cnt++;
 
    return same_dig_cnt;
}
 
// Driver code
int main()
{
 
    int N = 123, M = 321;
 
    cout << countDigits(N, M);
    return 0;

Java

// Java implementation of the above approach
class GFG {
 
  static int countDigits(int N, int M) {
 
    // Convert N and M to string
    // for ease of traversal
    String a = Integer.toString(N), b = Integer.toString(M);
 
    int same_dig_cnt = 0;
 
    // Find the count of digits
    // that are same and occur on same indices
    // in both N and M.
    // Store the count in variable same_dig_cnt
    for (int i = 0; i < a.length() && i < b.length(); i++)
      if (a.charAt(i) == b.charAt(i))
        same_dig_cnt++;
 
    return same_dig_cnt;
  }
 
  // Driver code
  public static void main(String args[])
  {
    int N = 123, M = 321;
    System.out.println(countDigits(N, M));
  }
}
 
// This code is contributed by gfgking

Python3

# Python code for the above approach
def countDigits(N, M):
 
    # Convert N and M to string
    # for ease of traversal
    a = str(N)
    b = str(M)
 
    same_dig_cnt = 0;
 
    # Find the count of digits
    # that are same and occur on same indices
    # in both N and M.
    # Store the count in variable same_dig_cnt
    i = 0
    while(i < len(a) and len(b)):
        if (a[i] == b[i]):
            same_dig_cnt += 1
        i += 1
 
    return same_dig_cnt;
 
# Driver code
N = 123
M = 321;
 
print(countDigits(N, M));
 
# This code is contributed by Saurabh Jaiswal

C#

// C# implementation of the above approach
using System;
using System.Collections;
class GFG
{
 
  static int countDigits(int N, int M)
  {
 
    // Convert N and M to string
    // for ease of traversal
    string a = N.ToString(), b = M.ToString();
 
    int same_dig_cnt = 0;
 
    // Find the count of digits
    // that are same and occur on same indices
    // in both N and M.
    // Store the count in variable same_dig_cnt
    for (int i = 0; i < a.Length && i < b.Length; i++)
      if (a[i] == b[i])
        same_dig_cnt++;
 
    return same_dig_cnt;
  }
 
  // Driver code
  public static void Main()
  {
 
    int N = 123, M = 321;
 
    Console.Write(countDigits(N, M));
  }
}
 
// This code is contributed by Samim Hossain Mondal.

Javascript

<script>
       // JavaScript code for the above approach
       function countDigits(N, M) {
 
           // Convert N and M to string
           // for ease of traversal
           let a = (N).toString(), b = (M).toString();
 
           let same_dig_cnt = 0;
 
           // Find the count of digits
           // that are same and occur on same indices
           // in both N and M.
           // Store the count in variable same_dig_cnt
           for (let i = 0; i < a.length && b.length; i++)
               if (a[i] == b[i])
                   same_dig_cnt++;
 
           return same_dig_cnt;
       }
 
       // Driver code
       let N = 123, M = 321;
 
       document.write(countDigits(N, M));
 
      // This code is contributed by Potta Lokesh
   </script>
Producción

1

Complejidad de tiempo: O(D), donde D es el recuento mínimo de dígitos en N o M
Espacio auxiliar: O(D), donde D es el recuento máximo de dígitos en N o M

Publicación traducida automáticamente

Artículo escrito por Code_r y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *