1971D - Binary Cut - CodeForces Solution


greedy implementation sortings strings

Please click on ads to support us..

Python Code:

def binary_cut(s):
    no_of_pieces = 0
    ptr = 0
    while ptr < len(s):
        while ptr < len(s) and s[ptr] == '1':
            ptr += 1
        start = ptr
        while ptr < len(s) and s[ptr] == '0':
            ptr += 1
        if ptr >= len(s):
            break
        else:
            no_of_pieces += 1
            while ptr < len(s) and s[ptr] == '1':
                ptr += 1
            end = ptr
            s = s[:start] + s[end:]
        break
    ptr = 0
    while ptr < len(s):
        if s[ptr] == '0':
            while ptr < len(s) and s[ptr] == '0':
                ptr += 1
            no_of_pieces += 1
        else:
            while ptr < len(s) and s[ptr] == '1':
                ptr += 1
            no_of_pieces += 1
    return no_of_pieces


T = int(input())
for _ in range(T):
    S = input()
    print(binary_cut(S))


Comments

Submit
0 Comments
More Questions

466C - Number of Ways
1146A - Love "A"
1618D - Array and Operations
1255A - Changing Volume
1710C - XOR Triangle
415C - Mashmokh and Numbers
8A - Train and Peter
591A - Wizards' Duel
1703G - Good Key Bad Key
1705A - Mark the Photographer
1707A - Doremy's IQ
1706B - Making Towers
1325B - CopyCopyCopyCopyCopy
1649C - Weird Sum
1324B - Yet Another Palindrome Problem
525A - Vitaliy and Pie
879A - Borya's Diagnosis
1672B - I love AAAB
1673A - Subtle Substring Subtraction
1345A - Puzzle Pieces
711A - Bus to Udayland
779B - Weird Rounding
1703D - Double Strings
1704C - Virus
63A - Sinking Ship
1704B - Luke is a Foodie
298B - Sail
239A - Two Bags of Potatoes
1704E - Count Seconds
682A - Alyona and Numbers