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

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

Entrada: A = 12345, B = 45 
Salida:
Entrada: A = 12345, B = 123 
Salida: No 
 

Método 1: 
 

  1. Convierta los números dados A y B en strings str1 y str2 respectivamente.
  2. Atraviesa ambas cuerdas desde el final 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
// suffix of A or not
bool checkSuffix(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[n1 - i - 1]
            != s2[n2 - i - 1]) {
            return false;
        }
    }
 
    // Return true
    return true;
}
 
// Driver Code
int main()
{
    // Given numbers
    int A = 12345, B = 45;
 
    // Function Call
    bool result = checkSuffix(A, B);
 
    // If B is a suffix 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 suffix of A or not
public static boolean checkSuffix(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(n1 - i - 1) !=
           s2.charAt(n2 - i - 1))
       {
           return false;
       }
    }
     
    // Return true
    return true;
}
 
// Driver code
public static void main(String[] args)
{
         
    // Given numbers
    int A = 12345, B = 45;
     
    // Function Call
    boolean result = checkSuffix(A, B);
     
    // If B is a suffix of A, 
    // then print "Yes"
    if (result)
    {
        System.out.print("Yes");
    }
    else
    {
        System.out.println("No");
    }
}
}
 
// This code is contributed by divyeshrabadiya07

Python3

# Python3 program for the above approach
 
# Function to check if B is a
# suffix of A or not
def checkSuffix(A, B):
 
    # Convert numbers into strings
    s1 = str(A);
    s2 = str(B);
 
    # Find the lengths of strings
    # s1 and s2
    n1 = len(s1)
    n2 = len(s2)
 
    # Base Case
    if (n1 < n2):
        return False;
     
    # Traverse the strings s1 & s2
    for i in range(n2):
 
        # If at any index characters
        # are unequals then return false
        if (s1[n1 - i - 1] != s2[n2 - i - 1]):
            return False;
             
    # Return true
    return True;
     
# Driver Code
 
# Given numbers
A = 12345
B = 45;
 
# Function Call
result = checkSuffix(A, B);
 
# If B is a suffix of A, then
# print "Yes"
if (result):
    print("Yes")
else:
    print("No")
 
# This code is contributed by grand_master   

C#

// C# program for the above approach
using System;
class GFG{
     
// Function to check if B
// is a suffix of A or not
public static bool checkSuffix(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[n1 - i - 1] !=  s2[n2 - i - 1])
        {
            return false;
        }
    }
     
    // Return true
    return true;
}
 
// Driver code
public static void Main(string[] args)
{
         
    // Given numbers
    int A = 12345, B = 45;
     
    // Function Call
    bool result = checkSuffix(A, B);
     
    // If B is a suffix of A,
    // then print "Yes"
    if (result)
    {
        Console.Write("Yes");
    }
    else
    {
        Console.Write("No");
    }
}
}
 
// This code is contributed by rutvik_56

Javascript

<script>
 
// javascript program for the above approach
 
       
// Function to check if B
// is a suffix of A or not
 
    function checkSuffix( 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[n1 - i - 1] !=  s2[n2 - i - 1])
        {
            return false;
        }
    }
       
    // Return true
    return true;
}
   
// Driver code
 
           
    // Given numbers
    var A = 12345, B = 45;
       
    // Function Call
    var result = checkSuffix(A, B);
       
    // If B is a suffix of A,
    // then print "Yes"
    if (result)
    {
        document.write("Yes");
    }
    else
    {
        document.write("No");
    }
     
</script>
 
 
  
Producción: 

Yes

 

Método 2: usar la función incorporada std::boost::algorithm::ends_with() que se incluye en Boost Library of C++ , que se usa para verificar si alguna string contiene el sufijo 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
// suffix of A or not
void checkSuffix(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 suffix of s1
    // or not using ends_with() function
    result = boost::algorithm::ends_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 = 45;
 
    // Function Call
    checkSuffix(A, B);
    return 0;
}

Java

// Java program for the above approach
import java.util.*;
 
class GFG{
 
// Function to check if B is a
// suffix of A or not
static void checkSuffix(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 suffix of s1
    // or not
    result = s1.endsWith(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 = 45;
 
    // Function Call
    checkSuffix(A, B);
}
}
 
// This code is contributed by 29AjayKumar

Python3

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

C#

// C# program for the above approach
using System;
 
class GFG{
 
// Function to check if B is a
// suffix of A or not
static void checkSuffix(int A, int B)
{
 
    // Convert numbers into Strings
    String s1 = String.Join("", A);
    String s2 = String.Join("", B);
 
    bool result;
 
    // Check if s2 is a suffix of s1
    // or not
    result = s1.EndsWith(s2);
 
    // If result is true, print "Yes"
    if (result)
    {
        Console.Write("Yes");
    }
    else
    {
        Console.Write("No");
    }
}
 
// Driver Code
public static void Main(String[] args)
{
    // Given numbers
    int A = 12345, B = 45;
 
    // Function Call
    checkSuffix(A, B);
}
}
 
// This code is contributed by 29AjayKumar

Javascript

<script>
 
// JavaScript program for the above approach
 
// Function to check if B is a
// suffix of A or not
function checkSuffix( A, B)
{
 
    // Convert numbers into Strings
    let s1 = A.toString();
    let s2 = B.toString();
 
    let result;
 
    // Check if s2 is a suffix of s1
    // or not
    result = s1.endsWith(s2);
 
    // If result is true, print "Yes"
    if (result)
    {
        document.write("Yes");
    }
    else
    {
        document.write("No");
    }
}
 
// Driver Code
 
    // Given numbers
    let A = 12345, B = 45;
 
    // Function Call
    checkSuffix(A, B);
             
</script>
Producción: 

Yes

 

Método 3: 
 

  1. Resta B de A. _
  2. Encuentre el número de dígitos en B (digamos X ) usando el Método 3 discutido en este artículo.
  3. Compruebe si A termina con al menos X número ceros o no. En caso afirmativo, escriba «Sí» .
  4. De lo contrario, escriba «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
// suffix of A or not
bool checkSuffix(int A, int B)
{
 
    // Find the number of digit in B
    int digit_B = log10(B) + 1;
 
    // Subtract B from A
    A -= B;
 
    // Returns true,
    // if B is a suffix of A
    return (A % int(pow(10, digit_B)));
}
 
// Driver Code
int main()
{
    // Given numbers
    int A = 12345, B = 45;
 
    // Function Call
    bool result = checkSuffix(A, B);
 
    // If B is a suffix of A, then
    // print "Yes"
    if (!result) {
        cout << "Yes";
    }
    else {
        cout << "No";
    }
    return 0;
}

Java

// Java program for the above approach
import java.util.*;
 
class GFG{
 
// Function to check if B
// is a suffix of A or not
static boolean checkSuffix(int A, int B)
{
 
    // Find the number of digit in B
    int digit_B = (int) (Math.log10(B) + 1);
 
    // Subtract B from A
    A -= B;
 
    // Returns true,
    // if B is a suffix of A
    return (A % (int)(Math.pow(10, digit_B)) > 0);
}
 
// Driver code
public static void main(String[] args)
{
 
    // Given numbers
    int A = 12345, B = 45;
 
    // Function call
    boolean result = checkSuffix(A, B);
 
    // If B is a suffix of A,
    // then print "Yes"
    if (!result)
    {
        System.out.print("Yes");
    }
    else
    {
        System.out.print("No");
    }
}
}
 
// This code is contributed by 29AjayKumar

Python3

# Python3 program for the above approach
import math
 
# Function to check if B is a
# suffix of A or not
def checkSuffix(A, B):
 
    # Find the number of digit in B
    digit_B = int(math.log10(B)) + 1;
 
    # Subtract B from A
    A -= B;
 
    # Returns true,
    # if B is a suffix of A
    return (A % int(math.pow(10, digit_B)));
 
# Driver Code
 
# Given numbers
A = 12345; B = 45;
 
# Function Call
result = checkSuffix(A, B);
 
# If B is a suffix of A, then
# print "Yes"
if (result == 0):
    print("Yes");
 
else:
    print("No");
 
# This code is contributed by Nidhi_biet

C#

// C# program for the above approach
using System;
class GFG{
 
// Function to check if B
// is a suffix of A or not
static bool checkSuffix(int A, int B)
{
 
    // Find the number of digit in B
    int digit_B = (int)(Math.Log10(B) + 1);
 
    // Subtract B from A
    A -= B;
 
    // Returns true,
    // if B is a suffix of A
    return (A % (int)(Math.Pow(10, digit_B)) > 0);
}
 
// Driver code
public static void Main()
{
 
    // Given numbers
    int A = 12345, B = 45;
 
    // Function call
    bool result = checkSuffix(A, B);
 
    // If B is a suffix of A,
    // then print "Yes"
    if (!result)
    {
        Console.Write("Yes");
    }
    else
    {
        Console.Write("No");
    }
}
}
 
// This code is contributed by Code_Mech

Javascript

<script>
 
    // JavaScript program for the above approach
     
    // Function to check if B
    // is a suffix of A or not
    function checkSuffix(A, B)
    {
 
        // Find the number of digit in B
        let digit_B = parseInt(Math.log10(B) + 1, 10);
 
        // Subtract B from A
        A -= B;
 
        // Returns true,
        // if B is a suffix of A
        return (A % (Math.pow(10, digit_B)) > 0);
    }
     
    // Given numbers
    let A = 12345, B = 45;
  
    // Function call
    let result = checkSuffix(A, B);
  
    // If B is a suffix of A,
    // then print "Yes"
    if (!result)
    {
        document.write("Yes");
    }
    else
    {
        document.write("No");
    }
     
</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 *