Open In App

Python | Check if a given string is binary string or not

Improve
Improve
Like Article
Like
Save
Share
Report

Given string str. The task is to check whether it is a binary string or not. 

Examples:  

Input: str = "01010101010"
Output: Yes

Input: str = "geeks101"
Output: No

Approach 1: Using Set  

  1. Insert the given string in a set
  2. 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)


Output

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 

  1. Iterate for every character and check if the character is 0 or 1.
  2. If it is not then set a counter and break.
  3. 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)


Output

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

  1. Compile a regular expression using compile() for “character is not 0 or 1”.
  2. Use re.findall() to fetch the strings satisfying the above regular expression.
  3. 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


Output

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


Output

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")


Output

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")


Output

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


Output

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


Output

True
False

Time complexity: O(n), where n is the length of the input string, and 
 Auxiliary space: O(1).

Method: Using re.search() 

  1. Import the re module.
  2. Define a regular expression that matches any character other than ‘0’ and ‘1’.
  3. Use the re.search() method to search for the regular expression in the given string.
  4. 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("geeks101"))   # Output: No


Output

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)



Last Updated : 03 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads