Dada una string de números positivos que van del 0 al 9 , la tarea consiste en comprobar si el número es un código pin válido o no mediante el uso de una expresión regular .
El código PIN válido de la India debe cumplir las siguientes condiciones.
- Puede tener solo seis dígitos.
- No debe comenzar con cero.
- El primer dígito del código PIN debe ser del 1 al 9.
- Los siguientes cinco dígitos del código pin pueden variar de 0 a 9.
- Debe permitir solo un espacio en blanco, pero después de tres dígitos, aunque esto es opcional.
Ejemplos:
Entrada: num = “132103”
Salida: verdadero
Explicación:
El número dado satisface todas las condiciones mencionadas anteriormente.Entrada: num = “201 305”
Salida: verdadero
Explicación:
El número dado satisface todas las condiciones mencionadas anteriormente.Entrada: num = «014205»
Salida: falso
Explicación:
El número dado comienza con cero, por lo tanto, no es un código PIN válido de la India.Entrada: num = «1473598»
Salida: falso
Explicación:
El número dado contiene siete dígitos, por lo tanto, no es un código PIN válido de la India.
Enfoque: este problema se puede utilizar mediante el uso de expresiones regulares.
1. Obtenga el número.
2. Cree una expresión regular para validar el código pin de India como se menciona a continuación:
regex = "^[1-9]{1}[0-9]{2}\\s{0, 1}[0-9]{3}$";
Dónde:
- ^ representa el comienzo del número.
- [1-9]{1} representa el dígito inicial en el código pin que va del 1 al 9.
- [0-9]{2} representa los siguientes dos dígitos en el código pin que van del 0 al 9.
- \\s{0, 1} representa el espacio en blanco en el código PIN que puede aparecer una vez o nunca.
- [0-9]{3} representa los últimos tres dígitos del código pin que van del 0 al 9.
- $ representa el final del número.
3. Haga coincidir el número dado con la expresión regular, en Java, esto se puede hacer usando Pattern.matcher() .
4. Devuelve verdadero si el número coincide con la expresión regular dada, de lo contrario, devuelve falso.
A continuación se muestra la implementación del enfoque anterior.
C++
// C++ program to validate the pin code // of India using Regular Expression. #include <bits/stdc++.h> using namespace std; // Function to validate the pin code of India. bool isValidPinCode(string pinCode) { // Regex to check valid pin code of India. const regex pattern("^[1-9]{1}[0-9]{2}\\s{0,1}[0-9]{3}$"); // If the pin code is empty // return false if (pinCode.empty()) { return false; } // Return true if the pin code // matched the ReGex if (regex_match(pinCode, pattern)) { return true; } else { return false; } } void print(bool n) { if (n == 0) { cout << "False" << endl; } else { cout << "True" << endl; } } // Driver Code. int main() { // Test Case 1: string num1 = "132103"; cout << num1 + ": "; print(isValidPinCode(num1)); // Test Case 2: string num2 = "201 305"; cout << num2 + ": "; print(isValidPinCode(num2)); // Test Case 3: string num3 = "014205"; cout << num3 + ": "; print(isValidPinCode(num3)); // Test Case 4: string num4 = "1473598"; cout << num4 + ": "; print(isValidPinCode(num4)); return 0; } // This code is contributed by nirajgusain5
Java
// Java program to validate the pin code // of India using Regular Expression. import java.util.regex.*; class GFG { // Function to validate the pin code of India. public static boolean isValidPinCode(String pinCode) { // Regex to check valid pin code of India. String regex = "^[1-9]{1}[0-9]{2}\\s{0,1}[0-9]{3}$"; // Compile the ReGex Pattern p = Pattern.compile(regex); // If the pin code is empty // return false if (pinCode == null) { return false; } // Pattern class contains matcher() method // to find matching between given pin code // and regular expression. Matcher m = p.matcher(pinCode); // Return if the pin code // matched the ReGex return m.matches(); } // Driver Code. public static void main(String args[]) { // Test Case 1: String num1 = "132103"; System.out.println( num1 + ": " + isValidPinCode(num1)); // Test Case 2: String num2 = "201 305"; System.out.println( num2 + ": " + isValidPinCode(num2)); // Test Case 3: String num3 = "014205"; System.out.println( num3 + ": " + isValidPinCode(num3)); // Test Case 4: String num4 = "1473598"; System.out.println( num4 + ": " + isValidPinCode(num4)); } }
Python3
# Python3 program to validate the # pin code of India using Regular # Expression. import re # Function to validate the pin code # of India. def isValidPinCode(pinCode): # Regex to check valid pin code # of India. regex = "^[1-9]{1}[0-9]{2}\\s{0,1}[0-9]{3}$"; # Compile the ReGex p = re.compile(regex); # If the pin code is empty # return false if (pinCode == ''): return False; # Pattern class contains matcher() method # to find matching between given pin code # and regular expression. m = re.match(p, pinCode); # Return True if the pin code # matched the ReGex else False if m is None: return False else: return True # Driver code if __name__ == "__main__": # Test case 1 num1 = "132103"; print(num1, ": ", isValidPinCode(num1)); # Test case 2: num2 = "201 305"; print(num2, ": ", isValidPinCode(num2)); # Test case 3: num3 = "014205"; print(num3, ": ", isValidPinCode(num3)); # Test case 4: num4 = "1473598"; print(num4, ": ", isValidPinCode(num4)); # This code is contributed by AnkitRai01
132103: true 201 305: true 014205: false 1473598: false
Publicación traducida automáticamente
Artículo escrito por prashant_srivastava y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA