Check if a number starts with another number or not
Given two numbers A and B where (A > B), the task is to check if B is a prefix of A or not. Print “Yes” if it is a prefix Else print “No”.
Examples:
Input: A = 12345, B = 12
Output: YesInput: A = 12345, B = 345
Output: No
Approach:
- Convert the given numbers A and B to strings str1 and str2 respectively.
- Traverse both the strings from the start of the strings.
- While traversing the strings, if at any index characters from str1 and str2 are unequal then print “No”.
- 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 // 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> |
Output:
Yes
Time Complexity: O(n2), where n2 is the size of string s2
Auxiliary Space: O(1), as no extra space is required
Using in-built function: Using inbuilt function std::boost::algorithm::starts_with(), it can be checked whether any string contains prefix 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 // 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> |
Output:
Yes
Time Complexity: O(1)
Auxiliary Space: O(1)
Please Login to comment...