Comprobar si un número comienza con otro número o no

Dados dos números A y B donde ( A > B ), la tarea es verificar si B es un prefijo de A o no. Escriba “Sí” si es un prefijo De lo contrario escriba “No” .

Ejemplos: 

Entrada: A = 12345, B = 12 
Salida:

Entrada: A = 12345, B = 345 
Salida: No 

Acercarse: 

  1. Convierta los números dados A y B en strings str1 y str2 respectivamente.
  2. Recorre ambas cuerdas desde el comienzo de las cuerdas.
  3. Mientras recorre las strings, si en algún índice los caracteres de str1 y str2 no son iguales, imprima «No» .
  4. De lo contrario, escriba «Sí».

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

C++

// C++ program for the above approach
#include "bits/stdc++.h"
using namespace std;
 
// Function to check if B is a
// prefix of A or not
bool checkprefix(int A, int B)
{
 
    // Convert numbers into strings
    string s1 = to_string(A);
    string s2 = to_string(B);
 
    // Find the lengths of strings
    // s1 and s2
    int n1 = s1.length();
    int n2 = s2.length();
 
    // Base Case
    if (n1 < n2) {
        return false;
    }
 
    // Traverse the strings s1 & s2
    for (int i = 0; i < n2; i++) {
 
        // If at any index characters
        // are unequals then return false
        if (s1[i]
            != s2[i]) {
            return false;
        }
    }
 
    // Return true
    return true;
}
 
// Driver Code
int main()
{
    // Given numbers
    int A = 12345, B = 12;
 
    // Function Call
    bool result = checkprefix(A, B);
 
    // If B is a prefix of A, then
    // print "Yes"
    if (result) {
        cout << "Yes";
    }
    else {
        cout << "No";
    }
    return 0;
}

Java

// Java program for the above approach
class GFG{
 
// Function to check if B is a
// prefix of A or not
static boolean checkprefix(int A, int B)
{
     
    // Convert numbers into Strings
    String s1 = String.valueOf(A);
    String s2 = String.valueOf(B);
 
    // Find the lengths of Strings
    // s1 and s2
    int n1 = s1.length();
    int n2 = s2.length();
 
    // Base Case
    if (n1 < n2)
    {
        return false;
    }
 
    // Traverse the Strings s1 & s2
    for(int i = 0; i < n2; i++)
    {
         
        // If at any index characters
        // are unequals then return false
        if (s1.charAt(i) != s2.charAt(1))
        {
            return false;
        }
    }
 
    // Return true
    return true;
}
 
// Driver Code
public static void main(String[] args)
{
     
    // Given numbers
    int A = 12345, B = 12;
 
    // Function call
    boolean result = checkprefix(A, B);
 
    // If B is a prefix of A, then
    // print "Yes"
    if (!result)
    {
        System.out.print("Yes");
    }
    else
    {
        System.out.print("No");
    }
}
}
 
// This code is contributed by amal kumar choubey

Python3

# Python3 program for the
# above approach
 
# Function to check if B is
# a prefix of A or not
def checkprefix(A, B):
     
    # Convert numbers into strings
    s1 = str(A)
    s2 = str(B)
     
    # Find the length of s1 and s2
    n1 = len(s1)
    n2 = len(s2)
     
    # Base case
    if n1 < n2:
        return False
         
    # Traverse the string s1 and s2
    for i in range(0, n2):
         
        # If at any index characters
        # are unequal then return False
        if s1[i] != s2[i]:
            return False
             
    return True
 
# Driver code
if __name__=='__main__':
     
    # Given numbers
    A = 12345
    B = 12
     
    # Function call
    result = checkprefix(A, B)
     
    # If B is a prefix of A ,
    # then print Yes
    if result:
        print("Yes")
    else:
        print("No")
         
# This code is contributed by virusbuddah_

C#

// C# program for the above approach
using System;
 
class GFG{
     
// Function to check if B is a
// prefix of A or not
static bool checkprefix(int A, int B)
{
 
    // Convert numbers into Strings
    String s1 = A.ToString();
    String s2 = B.ToString();
 
    // Find the lengths of Strings
    // s1 and s2
    int n1 = s1.Length;
    int n2 = s2.Length;
 
    // Base Case
    if (n1 < n2)
    {
        return false;
    }
 
    // Traverse the Strings s1 & s2
    for(int i = 0; i < n2; i++)
    {
 
        // If at any index characters
        // are unequals then return false
        if (s1[i] != s2[i])
        {
            return false;
        }
    }
 
    // Return true
    return true;
}
 
// Driver Code
static public void Main ()
{
     
    // Given numbers
    int A = 12345, B = 12;
 
    // Function call
    bool result = checkprefix(A, B);
 
    // If B is a prefix of A, then
    // print "Yes"
    if (result)
    {
        Console.Write("Yes");
    }
    else
    {
        Console.Write("No");
    }
}
}
 
// This code is contributed by shubhamsingh10

Javascript

<script>
 
// javascript program for the above approach
   
 
// Function to check if B is a
// prefix of A or not
 
function checkprefix( A,  B)
{
   
    // Convert numbers into Strings
     
    var s1 = A.toString();
    var s2 = B.toString();
   
    // Find the lengths of Strings
    // s1 and s2
     
    var n1 = s1.length;
    var n2 = s2.length;
   
    // Base Case
    if (n1 < n2)
    {
        return false;
    }
   
    // Traverse the Strings s1 & s2
    for(var i = 0; i < n2; i++)
    {
   
        // If at any index characters
        // are unequals then return false
        if (s1[i] != s2[i])
        {
            return false;
        }
    }
   
    // Return true
    return true;
}
   
// Driver Code
 
       
    // Given numbers
    var A = 12345, B = 12;
   
    // Function call
    var result = checkprefix(A, B);
   
    // If B is a prefix of A, then
    // print "Yes"
    if (result)
    {
        document.write("Yes");
    }
    else
    {
        document.write("No");
    }
 
 
</script>
 
  
Producción: 

Yes

Complejidad de tiempo: O(n2), donde n2 es el tamaño de la string s2
Espacio auxiliar: O(1), ya que no se requiere espacio adicional

Usando la función incorporada: Usando la función incorporada std::boost::algorithm::starts_with() , se puede verificar si alguna string contiene el prefijo de otra string o no.

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

C++

// C++ program for the above approach
#include <bits/stdc++.h>
#include <boost/algorithm/string.hpp>
using namespace std;
 
// Function to check if B is a
// prefix of A or not
void checkprefix(int A, int B)
{
 
    // Convert numbers into strings
    string s1 = to_string(A);
    string s2 = to_string(B);
 
    bool result;
 
    // Check if s2 is a prefix of s1
    // or not using starts_with() function
    result = boost::algorithm::starts_with(s1, s2);
 
    // If result is true, print "Yes"
    if (result) {
        cout << "Yes";
    }
    else {
        cout << "No";
    }
}
 
// Driver Code
int main()
{
    // Given numbers
    int A = 12345, B = 12;
 
    // Function Call
    checkprefix(A, B);
    return 0;
}

Java

// Java program for the above approach
class GFG{
 
// Function to check if B is a
// prefix of A or not
static void checkprefix(int A, int B)
{
 
    // Convert numbers into Strings
    String s1 = String.valueOf(A);
    String s2 = String.valueOf(B);
 
    boolean result;
 
    // Check if s2 is a prefix of s1
    // or not using starts_with() function
    result = s1.startsWith(s2);
 
    // If result is true, print "Yes"
    if (result)
    {
        System.out.print("Yes");
    }
    else
    {
        System.out.print("No");
    }
}
 
// Driver Code
public static void main(String[] args)
{
     
    // Given numbers
    int A = 12345, B = 12;
 
    // Function call
    checkprefix(A, B);
}
}
 
// This code is contributed by amal kumar choubey

Python3

# Python3 program for the
# above approach
 
# Function to check if B is
# a prefix of A or not
def checkprefix(A, B):
     
    # Convert numbers into strings
    s1 = str(A)
    s2 = str(B)
     
    # Check if s2 is a prefix of s1
    # or not using startswith() function
    result = s1.startswith(s2)
     
    # If result is true print Yes
    if result:
        print("Yes")
    else:
        print("No")
 
# Driver code
if __name__=='__main__':
     
    # Given numbers
    A = 12345
    B = 12
     
    # Function call
    checkprefix(A, B)
     
# This code is contributed by virusbuddah_

C#

// C# program for the above approach
using System.Threading;
using System.Globalization;
using System;
 
class GFG{
     
// Function to check if B is a
// prefix of A or not
static void checkprefix(int A, int B)
{
 
    // Convert numbers into Strings
    string s1 = A.ToString();
    string s2 = B.ToString();
 
    bool result;
 
    // Check if s2 is a prefix of s1
    // or not using starts_with() function
    result = s1.StartsWith(s2, false,
        CultureInfo.InvariantCulture);
 
    // If result is true, print "Yes"
    if (result)
    {
        Console.Write("Yes");
    }
    else
    {
        Console.Write("No");
    }
}
 
// Driver code
static void Main()
{
     
    // Given numbers
    int A = 12345, B = 12;
     
    // Function call
    checkprefix(A, B);
}
}
 
// This code is contributed by divyeshrabadiya07

Javascript

<script>
 
      // JavaScript program for the above approach
      // Function to check if B is a
      // prefix of A or not
      function checkprefix(A, B) {
        // Convert numbers into Strings
        var s1 = A.toString();
        var s2 = B.toString();
 
        var result;
 
        // Check if s2 is a prefix of s1
        // or not using starts_with() function
        result = s1.startsWith(s2);
 
        // If result is true, print "Yes"
        if (result) {
          document.write("Yes");
        } else {
          document.write("No");
        }
      }
 
      // Driver code
      // Given numbers
      var A = 12345,
        B = 12;
 
      // Function call
      checkprefix(A, B);
       
 </script>
Producción: 

Yes

Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por spp____ 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 *