ankushmondal1y2t's blog

By ankushmondal1y2t, history, 2 years ago, In English

You are given a binary string and you have to find out minimum bits to flip(either from 0 --> 1 or 1 --> 0) to become number of 1's divisible by 4 and palindrome string

example s = 1110 if i flip the last bit 0 to 1 then the string becomes 1111 which is palindrome and the number of 1's divisible by 4

in one operation u can do flip 1 to 0 then 0 to 1 you have to just find out the minimum bits to flip to satisfy the following condition

can anyone tell me its solution or intuition??

| Write comment?
»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

u need to minimize the number of operations ??

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

First we must flip either s[i] or s[n — i + 1] if s[i] != s[n — i + 1]. So let's count number of such i, let it be cnt. Also let number of 1 in s be k. If cnt % 2 = k % 2 and cnt >= min(k % 4, 4 — k % 4) that means answer is cnt. If cnt % 2 != k % 2 that means we have 1 in the middle so we must flip it. Otherwise we can increase cnt using greedy approach.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Is it a codeforces problem that I can submit it in problemset ?? sorry for my bad english

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +1 Vote: I do not like it

    There's a binary grid variation of this problem that came up in a Leetcode contest few days ago. You may try solving and submitting there. Here's the Link for your convenience.

»
2 years ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

What you've asked is a simpler version of the attached problem.Link