diff --git a/Solution/1318. Minimum Flips to Make a OR b Equal to c/1318. Minimum Flips to Make a OR b Equal to c.py b/Solution/1318. Minimum Flips to Make a OR b Equal to c/1318. Minimum Flips to Make a OR b Equal to c.py new file mode 100644 index 0000000..9cbc707 --- /dev/null +++ b/Solution/1318. Minimum Flips to Make a OR b Equal to c/1318. Minimum Flips to Make a OR b Equal to c.py @@ -0,0 +1,7 @@ +class Solution: + def minFlips(self, a: int, b: int, c: int) -> int: + ans = 0 + for i in range(32): + x, y, z = a >> i & 1, b >> i & 1, c >> i & 1 + ans += x + y if z == 0 else int(x == 0 and y == 0) + return ans \ No newline at end of file diff --git a/Solution/1318. Minimum Flips to Make a OR b Equal to c/readme.md b/Solution/1318. Minimum Flips to Make a OR b Equal to c/readme.md new file mode 100644 index 0000000..446a59a --- /dev/null +++ b/Solution/1318. Minimum Flips to Make a OR b Equal to c/readme.md @@ -0,0 +1,117 @@ +--- +comments: true +difficulty: Medium +edit_url: antim +rating: 1382 +source: Weekly Contest 171 Q2 +tags: + - Bit Manipulation +--- + + + +# [1318. Minimum Flips to Make a OR b Equal to c](https://leetcode.com/problems/minimum-flips-to-make-a-or-b-equal-to-c) + + +## Description + + + +
Given 3 positives numbers a, b and c. Return the minimum flips required in some bits of a and b to make ( a OR b == c ). (bitwise OR operation).
+Flip operation consists of change any single bit 1 to 0 or change the bit 0 to 1 in their binary representation.
+
Example 1:
+ +
+Input: a = 2, b = 6, c = 5 +Output: 3 +Explanation: After flips a = 1 , b = 4 , c = 5 such that (+ +aORb==c)
Example 2:
+ ++Input: a = 4, b = 2, c = 7 +Output: 1 ++ +
Example 3:
+ ++Input: a = 1, b = 2, c = 3 +Output: 0 ++ +
+
Constraints:
+ +1 <= a <= 10^91 <= b <= 10^91 <= c <= 10^9