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: SíEntrada: A = 12345, B = 345
Salida: No
Acercarse:
- Convierta los números dados A y B en strings str1 y str2 respectivamente.
- Recorre ambas cuerdas desde el comienzo de las cuerdas.
- Mientras recorre las strings, si en algún índice los caracteres de str1 y str2 no son iguales, imprima «No» .
- 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)