Practice Arena

Python Coding Challenges

Write real Python in the browser. Instant feedback. From beginner to expert.

925 challenges 556 easy 323 medium 46 hard
Bit Manipulation easy

Brian Kernighan count

Implement a function that counts set bits using Brian Kernighan's efficient algorithm.

bit-manipulation integers counting
+10 pts 15m
Bit Manipulation easy

Reverse Bits

Implement a function that reverses the bits of a given 32-bit unsigned integer.

bit-manipulation binary integer
+10 pts 15m
Bit Manipulation easy

Swap Odd and Even Bits

Write a function that swaps odd and even bits of a non-negative integer.

bit-manipulation bitwise integer
+10 pts 15m
Bit Manipulation easy

Clear Rightmost Set Bit

Write a function clear_rightmost_set_bit that accepts a non-negative integer and returns the integer with its rightmost set bit cleared.

bitwise bit manipulation integers
+8 pts 10m
Bit Manipulation medium

Maximum XOR Pair

Implement max_xor_pair(nums) that returns the maximum XOR value obtainable by pairing any two numbers in the given list.

bit-manipulation xor array
+25 pts 30m
Bit Manipulation easy

Find Duplicate Bits

Given a positive integer, return the positions where the bit value appears more than once in its binary form.

bit-manipulation binary counting
+8 pts 12m
Bit Manipulation easy

Toggle kth Bit

Implement a function that toggles the kth bit of a non-negative integer (0-indexed from the least significant bit) and returns the new integer.

bit-manipulation xor binary
+10 pts 10m
Bit Manipulation easy

Odd Parity Bit

Given an integer, return the odd parity bit (0 or 1) so that total number of 1-bits in the 8-bit representation becomes odd.

bitwise parity integer
+8 pts 10m
Bit Manipulation easy

Parse bit field flags

Write a function that unpacks a bit field integer into a dict of named boolean flags.

bitmask bitwise flags
+10 pts 12m
Bit Manipulation easy

Subset XOR sum

Given a list of integers, compute the bitwise XOR of each non-empty subset and return the sum of those XOR totals.

xor bitwise subsets
+8 pts 10m
Bit Manipulation easy

Check kth bit

Implement a function that checks whether the k-th bit of a non-negative integer is set (1) or not (0).

bit-manipulation bitwise integer
+8 pts 10m
Bit Manipulation easy

Even Parity Bit

Given an integer, return the even parity bit (0 or 1) that makes the total count of set bits even.

bitwise parity bits
+8 pts 10m
Binary Search medium

Find in Mountain Array

Implement a function to search for a target value in a mountain array using binary search.

binary-search bitonic-array array-traversal
+25 pts 25m
Matrix & 2D Arrays easy

Flipping an Image

Implement a function that flips an image represented as a binary matrix by reversing each row and inverting each pixel.

matrix list-comprehension bitwise
+10 pts 15m
Data Formats & Parsing easy

Encode Base64 String

Write a function that encodes a UTF-8 string into a base64 string without using the base64 module.

base64 encoding strings
+8 pts 15m
Data Formats & Parsing medium

Base64 Encode Decode

Implement Base64 encoding and decoding functions that handle padding and all standard characters.

base64 encoding decoding
+20 pts 30m
Cryptography & Hashing easy

XOR Cipher Encode

Implement the XOR cipher: encode a string by XORing each character with a key character.

xor encryption strings
+10 pts 10m

Showing 25–41 of 41 challenges

Guide: free Python coding challenges

Practice Python by solving problems

PythonSkillset challenges are hands-on coding exercises from beginner to advanced. Open a challenge, read the problem, write Python in the split-pane editor, and run tests with Pyodide — no install required.

How to use the arena

  1. Pick a category — basics, algorithms, strings, and more
  2. Open a challenge, read the statement, and edit the starter code
  3. Run tests, fix failures, then try a related quiz or tutorial lesson

Challenges vs tutorials and quizzes

Challenges test what you can build under constraints. For guided teaching, use our Python tutorials. For quick checks, try quizzes or copy snippets from code samples.