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: Sí
Entrada: A = 12345, B = 123
Salida: No
Método 1:
- Convierta los números dados A y B en strings str1 y str2 respectivamente.
- Atraviesa ambas cuerdas desde el final 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 // 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:
- Resta B de A. _
- Encuentre el número de dígitos en B (digamos X ) usando el Método 3 discutido en este artículo.
- Compruebe si A termina con al menos X número ceros o no. En caso afirmativo, escriba «Sí» .
- 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)