Skip to content
Related Articles

Related Articles

Improve Article

Check if a number ends with another number or not

  • Last Updated : 23 Jun, 2021

Given two numbers A and B where (A > B), the task is to check if B is a suffix of A or not. Print “Yes” if it is a suffix Else print “No”.
Examples: 
 

Input: A = 12345, B = 45 
Output: Yes
Input: A = 12345, B = 123 
Output: No 
 

 

Method 1: 
 

  1. Convert the given numbers A and B to strings str1 and str2 respectively.
  2. Traverse both the strings from the end of the strings.
  3. While traversing the strings, if at any index characters from str1 and str2 are unequal then print “No”.
  4. Else print “Yes”.

Below is the implementation of the above approach:
 



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>
 
 
  
Output: 
Yes

 

Method 2: Using inbuilt function std::boost::algorithm::ends_with() which is included in Boost Library of C++ which is used to check whether any string contains suffix of another string or not.
Below is the implementation of the above approach:
 

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 leto 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, prlet "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>
Output: 
Yes

 

Method 3: 
 

  1. Subtract B from A.
  2. Find the number of digits in B(say X) by using the Method 3 discussed in this article.
  3. Check whether A ends with atleast X number zeros or not. If yes then print “Yes”.
  4. Else print “No”.

Below is the implementation of the above approach:
 

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>
Output: 
Yes

 

Time Complexity: O(1)
Auxiliary Space: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :