Examine if Binary Array might be made Palindrome by flipping two bits at a time
[ad_1]
Given a binary array A[] of measurement N, the duty is to examine whether or not the array might be transformed right into a palindrome by flipping two bits in every operation.
Notice: The operation might be carried out any variety of occasions.
Examples:
Enter: A[] = {1, 0, 1, 0, 1, 1}
Output: Sure
Clarification: We are able to carry out the next operation:
Choose i = 2 and j = 4. Then {1, 0, 1, 0, 1, 1}→{1, 0, 0, 0, 0, 1} which is a palindrome.Enter: A[] = {0, 1}
Output: No
Strategy: The issue might be solved based mostly on the next statement:
Depend variety of 0s and 1s.
 If the worth of depend of 0s and 1s are odd then no palindrome might be made by performing operation on A[].
 In any other case, array A[] can transformed right into a palindrome after performing operation on array.
Comply with the under steps to unravel the issue:
 Set zeros = 0 and ones = 0 to retailer the depend of variety of 0s and 1s within the array.
 After that iterate a loop from 0 to N1 corresponding to:
 If A[i] = 0 increment the worth of zeros in any other case increment the worth of ones.
 If the worth of zeros and ones is odd then print “No” i.e. it isn’t potential to transform A to a palindrome by making use of the above operation any variety of occasions.
 In any other case, print “Sure”.
Beneath is the implementation of the above method.
Java

Time Complexity: O(N)
Auxiliary House: O(1)
[ad_2]