En el Conjunto 1 , hemos discutido el enfoque general para contar los patrones de la forma 1(0+)1 donde (0+) representa cualquier secuencia consecutiva no vacía de 0. En esta publicación, discutiremos el enfoque de expresión regular para contar el mismo. Ejemplos:
Input : 1101001 Output : 2 Input : 100001abc101 Output : 2
A continuación se muestra una de las expresiones regulares para el patrón anterior.
10+1
Por lo tanto, cada vez que encontramos una coincidencia, aumentamos el contador para contar el patrón. Como el último carácter de una coincidencia siempre será ‘1’, debemos comenzar de nuevo a buscar desde ese índice.
Implementación:
Java
//Java program to count the patterns // of the form 1(0+)1 using Regex import java.util.regex.Matcher; import java.util.regex.Pattern; class GFG { static int patternCount(String str) { // regular expression for the pattern String regex = "10+1"; // compiling regex Pattern p = Pattern.compile(regex); // Matcher object Matcher m = p.matcher(str); // counter int counter = 0; // whenever match found // increment counter while(m.find()) { // As last character of current match // is always one, starting match from that index m.region(m.end()-1, str.length()); counter++; } return counter; } // Driver Method public static void main (String[] args) { String str = "1001ab010abc01001"; System.out.println(patternCount(str)); } }
2
Complejidad temporal: O(n)
Espacio auxiliar: O(1)
Artículos relacionados :
- Java de expresiones regulares
- cuantificadores
- Extraer cada palabra de una string usando Regex
- Comprobar si una string determinada es un número válido (entero o punto flotante)
- Imprima la primera letra de cada palabra en una string usando expresiones regulares
Este artículo es una contribución de Gaurav Miglani . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA