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
Linked Lists easy

Remove the head node

Return a new list without the first node.

linked-list lists pointers
+10 pts 12m
Linked Lists medium

Prepend a new head

Insert value at the front of the list.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Append a new tail

Add value after the last node.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Palindrome linked values

Check whether values read the same forwards and backwards.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Rotate list left by k

Move the first k nodes to the end (k may exceed length; use modulo).

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Merge two sorted lists

Merge two ascending integer lists into one sorted list.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Remove duplicate values

Keep first occurrence of each value while preserving order.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Pairwise sum of adjacent nodes

Sum each adjacent pair; keep a lone last node as-is.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Count nodes equal to target

Count how many times target appears in the list.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Zip two linked lists

Interleave values from a and b until both are exhausted.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Split list at index

Return prefix and suffix tuples at index k.

linked-list lists pointers
+22 pts 20m
Linked Lists hard

Second node value

Return the second value or None if fewer than two nodes.

linked-list lists pointers
+35 pts 30m
Linked Lists hard

Drop the tail node

Return a new list without the last node.

linked-list lists pointers
+35 pts 30m
Linked Lists hard

Join node values with arrows

Format string node values as 'a -> b -> c'; empty list returns ''.

linked-list lists pointers
+35 pts 30m
Linked Lists hard

Insert value at index

Insert x at index i in a new list.

linked-list lists pointers
+35 pts 30m
Linked Lists hard

Compare two linked lists

Return True when both lists have identical values in order.

linked-list lists pointers
+35 pts 30m
Matrix & 2D Arrays easy

Toeplitz Matrix Check

Write a function is_toeplitz(matrix) that checks if a 2D list is a Toeplitz matrix, where all elements on the same diagonal from top-left to bottom-right are identical.

matrix array diagonal
+10 pts 15m
Matrix & 2D Arrays medium

Shift 2D Grid

Implement a function to shift a 2D grid right by k positions, flattening the grid and wrapping elements.

grid list modulo
+20 pts 20m
Matrix & 2D Arrays easy

Matrix Multiply 2D

Write a function that multiplies two 2D matrices (lists of lists) and returns the product matrix.

matrix multiplication nested-loops
+8 pts 10m
Matrix & 2D Arrays easy

Transpose 2D Array

Implement a function that returns the transpose of a rectangular 2D list.

matrix transpose nested-lists
+10 pts 10m
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
Datetime & Time Calculations easy

Leap Years in Range

Write a function that returns a list of all leap years between two given years, inclusive.

leap-year range datetime
+7 pts 10m
Datetime & Time Calculations easy

Schedule conflict check

Write a function that takes a list of time intervals and returns True if any two overlap.

datetime intervals overlap
+10 pts 15m
Datetime & Time Calculations easy

Time Slot Generator

Generate a list of time slots of a specified duration within a start and end time.

datetime time scheduling
+8 pts 12m

Showing 241–264 of 273 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.