We are given a binary string containing 1’s and 0’s. Find the maximum length of consecutive 1’s in it.
Examples:
Input : str = '11000111101010111' Output : 4
We have an existing solution for this problem please refer to Maximum consecutive one’s (or zeros) in a binary array link. We can solve this problem within single line of code in Python. The approach is very simple,
- Separate all sub-strings of consecutive 1’s separated by zeros using split() method of string.
- Print maximum length of split sub-strings of 1’s.
Implementation:
Python
# Function to find Maximum length of consecutive 1's in a binary string def maxConsecutive1( input ): # input.split('0') --> splits all sub-strings of consecutive 1's # separated by 0's, output will be like ['11','1111','1','1','111'] # map(len,input.split('0')) --> map function maps len function on each # sub-string of consecutive 1's # max() returns maximum element from a list print max ( map ( len , input .split( '0' ))) # Driver program if __name__ = = "__main__" : input = '11000111101010111' maxConsecutive1( input ) |
4
Time complexity : O(n)
Auxiliary Space : O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!