Given string str. The task is to check whether it is a binary string or not.
Examples:
Input: str = "01010101010" Output: Yes Input: str = "Lazyroar101" Output: No
Approach 1: Using Set
- Insert the given string in a set
- Check if the set characters consist of 1 and/or 0 only.
Example:
Python3
# Python program to check # if a string is binary or not # function for checking the # string is accepted or not def check(string): # set function convert string # into set of characters . p = set (string) # declare set of '0', '1' . s = { '0' , '1' } # check set p is same as set s # or set p contains only '0' # or set p contains only '1' # or not, if any one condition # is true then string is accepted # otherwise not . if s = = p or p = = { '0' } or p = = { '1' }: print ( "Yes" ) else : print ( "No" ) # driver code if __name__ = = "__main__" : string = "101010000111" # function calling check(string) |
Yes
Time Complexity: O(n), Here n is the length of the string.
Auxiliary Space: O(1), As constant extra space is used.
Approach 2: Simple Iteration
- Iterate for every character and check if the character is 0 or 1.
- If it is not then set a counter and break.
- After iteration check whether the counter is set or not.
Python3
# Python program to check # if a string is binary or not # function for checking the # string is accepted or not def check2(string): # initialize the variable t # with '01' string t = '01' # initialize the variable count # with 0 value count = 0 # looping through each character # of the string . for char in string: # check the character is present in # string t or not. # if this condition is true # assign 1 to the count variable # and break out of the for loop # otherwise pass if char not in t: count = 1 break else : pass # after coming out of the loop # check value of count is non-zero or not # if the value is non-zero the en condition is true # and string is not accepted # otherwise string is accepted if count: print ( "No" ) else : print ( "Yes" ) # driver code if __name__ = = "__main__" : string = "001021010001010" # function calling check2(string) |
No
Time Complexity: O(n), Here n is the length of the string.
Auxiliary Space: O(1), As constant extra space is used.
Approach 3: Regular Expressions
- Compile a regular expression using compile() for “character is not 0 or 1”.
- Use re.findall() to fetch the strings satisfying the above regular expression.
- Print output based on the result.
Python3
#import library import re sampleInput = "1001010" # regular expression to find the strings # which have characters other than 0 and 1 c = re. compile ( '[^01]' ) # use findall() to get the list of strings # that have characters other than 0 and 1. if ( len (c.findall(sampleInput))): print ( "No" ) # if length of list > 0 then it is not binary else : print ( "Yes" ) # if length of list = 0 then it is binary |
Yes
Time complexity: O(n)
Auxiliary space: O(1)
Approach 4: Using exception handling and int
Python has a built in method to convert a string of a specific base to a decimal integer, using int(string, base). If the string passed as an argument is not of the specified base, then a ValueError is raised.
Python3
# Python program to check # if a string is binary or not # function for checking the # string is accepted or not def check(string): try : # this will raise value error if # string is not of base 2 int (string, 2 ) except ValueError: return "No" return "Yes" # driver code if __name__ = = "__main__" : string1 = "101011000111" string2 = "201000001" # function calling print (check(string1)) print (check(string2)) # this code is contributed by phasing17 |
Yes No
Time Complexity: O(1),
Auxiliary Space: O(1)
Approach 5 : Using count() function
Python3
string = "01010101010" if (string.count( '0' ) + string.count( '1' ) = = len (string)): print ( "Yes" ) else : print ( "No" ) |
Yes
Time Complexity: O(n), where n is number of characters in string.
Auxiliary Space: O(1)
Approach 6 : Using replace() and len() methods
Python3
#Python program to check string is binary or not string = "01010121010" binary = "01" for i in binary: string = string.replace(i,"") if ( len (string) = = 0 ): print ( "Yes" ) else : print ( "No" ) |
No
Approach 7: Using all()
The all() method in Python3 can be used to evaluate if all the letters in the string are 0 or 1.
Python3
# Python program to check # if a string is binary or not # function for checking the # string is accepted or not def check(string): if all ((letter in "01" ) for letter in string): return "Yes" return "No" # driver code if __name__ = = "__main__" : string1 = "101011000111" string2 = "201000001" # function calling print (check(string1)) print (check(string2)) # this code is contributed by phasing17 |
Yes No
Time Complexity: O(n), Here n is the length of the string.
Auxiliary Space: O(1), As constant extra space is used.
Approach 8: Using issubset() method
We can use a issubset method in comprehension to check if all characters in the string are either 0 or 1.
Python3
def is_binary_string(s): # use set comprehension to extract all unique characters from the string unique_chars = {c for c in s} # check if the unique characters are only 0 and 1 return unique_chars.issubset({ '0' , '1' }) # driver code if __name__ = = "__main__" : string1 = "101011000111" string2 = "201000001" # function calling print (is_binary_string(string1)) print (is_binary_string(string2)) |
True False
Time complexity: O(n), where n is the length of the input string, and
Auxiliary space: O(1).
Method: Using re.search()
- Import the re module.
- Define a regular expression that matches any character other than ‘0’ and ‘1’.
- Use the re.search() method to search for the regular expression in the given string.
- If a match is found, then the given string is not a binary string. Otherwise, it is.
Python3
import re def is_binary_string( str ): # Define regular expression regex = r "[^01]" # Search for regular expression in string if re.search(regex, str ): return False else : return True #Examples print (is_binary_string( "01010101010" )) # Output: Yes print (is_binary_string( "Lazyroar101" )) # Output: No |
True False
Time Complexity: O(n), where n is the length of the given string (as we are iterating over the string once).
Auxiliary Space: O(1)