Encuentra todos los patrones de “1(0+)1” en una string dada | SET 2 (Enfoque de expresiones regulares)

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));
 }
}
Producción

2

Complejidad temporal: O(n) 
Espacio auxiliar: O(1)

Artículos relacionados :

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *