Given a string of 0 and 1, we need to check that the given string is valid or not. The given string is valid when there is no zero is present in between 1’s. For example, 1111, 0000111110, 1111000 are valid strings but 01010011, 01010, 101 are not. Examples:
Input : 100 Output : VALID Input : 1110001 Output : NOT VALID There is 0 between 1s Input : 00011 Output : VALID
In Set 1, we have discussed general approach for validity of string.In this post, we will discuss regular expression approach for same and it is simple. As we know that in a string if there is zero between 1’s, than string is not valid.Hence below is one of the regular expression for invalid string pattern.
10+1
So here is the simple regex algorithm.
- Loop over the matcher(string)
- if above regex match is find in the matcher, then string is not valid, otherwise valid.
Implementation:
C++
// C++ regex program to check for valid string #include <iostream> #include <regex> using namespace std; // Method to check for valid string bool checkString(string str) { // regular expression for invalid string const regex Regex( "10+1" ); // if the regex does not match the string // then it is valid return !regex_match(str, Regex); } // Driver method int main() { string str = "00011111111100000" ; // Function call cout<<(checkString(str) ? "VALID" : "NOT VALID" ); return 0; } // This code is contributed by Aman Kumar |
Java
// Java regex program to check for valid string import java.util.regex.Matcher; import java.util.regex.Pattern; class GFG { // Method to check for valid string static boolean checkString(String str) { // regular expression for invalid string String regex = "10+1" ; // compiling regex Pattern p = Pattern.compile(regex); // Matcher object Matcher m = p.matcher(str); // loop over matcher while (m.find()) { // if match found, // then string is invalid return false ; } // if match doesn't found // then string is valid return true ; } // Driver method public static void main (String[] args) { String str = "00011111111100000" ; System.out.println(checkString(str) ? "VALID" : "NOT VALID" ); } } |
Python3
# Python3 regex program to check for valid string import re # Method to check for valid string def checkString( str ): # regular expression for invalid string regex = "10+1" x = re.search( "10+1" , str ) return x is None #Driver method str = "00011111111100000" if checkString( str ): print ( "VALID" ) else : print ( "NOT VALID" ) #this code is contributed by phasing17 |
C#
// C# regex program to check for valid string using System; using System.Text.RegularExpressions; class GFG { // Method to check for valid string static bool checkString( string str) { // regular expression for invalid string Regex regex = new Regex( @"10+1" ); // if the regex does not match the string // then it is valid return !regex.IsMatch(str); } // Driver method public static void Main( string [] args) { string str = "00011111111100000" ; // Function call Console.WriteLine(checkString(str) ? "VALID" : "NOT VALID" ); } } // This code is contributed by phasing17 |
Javascript
// JavaScript regex program to check for valid string // Method to check for valid string function checkString(str) { // returns true if string contains only 0 and 1 // otherwise, returns false return str.match(/^[0-1]+$/) != null ; } // Driver method let str = "01" ; console.log(checkString(str) ? "VALID" : "NOT VALID" ); // This code is contributed by phasing17 |
VALID
Time complexity : O(n)
Auxiliary Space : O(1)
This article is contributed by Gaurav Miglani. If you like neveropen 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 neveropen main page and help other Geeks.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!