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++ 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 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 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# 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 |
<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> |
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++ 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 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 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# 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 |
<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>
|
Yes
Time Complexity: O(1)
Auxiliary Space: O(1)