Skip to content
Related Articles

Related Articles

Find all the patterns of “1(0+)1” in a given string | SET 2(Regular Expression Approach)

View Discussion
Improve Article
Save Article
Like Article
  • Difficulty Level : Easy
  • Last Updated : 15 Jun, 2022

In Set 1, we have discussed general approach for counting the patterns of the form 1(0+)1 where (0+) represents any non-empty consecutive sequence of 0’s.In this post, we will discuss regular expression approach to count the same. Examples:

Input : 1101001
Output : 2

Input : 100001abc101
Output : 2

Below is one of the regular expression for above pattern

10+1

Hence, whenever we found a match, we increase counter for counting the pattern.As last character of a match will always ‘1’, we have to again start searching from that index. 

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));
 }
}

Output:

2

Time Complexity: O(n) 

Auxiliary Space: 0(1)

Related Articles :

This article is contributed by Gaurav Miglani. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!