Rust coding challenges

225 challenges you can solve in Rust, from first loops to graphs, dynamic programming and machine learning. Write your code in the browser, run the tests instantly and get an AI review.

Easy · 134 Medium · 67 Hard · 24

Skills you'll practise: CountingDigit extractionString splitting2D listsArithmeticFormulasListsLoopsConditionsDivisibilityFloating pointGradient descent
  • Python · C++ · C#
  • Automated tests
  • AI code review
  • Community solutions
226
Challenges
123
Solutions shared
9
Languages

All challenges

Search by topic, language, or difficulty.

225 challenges
Easy

Logistic Regression Prediction

Classify samples as 0 or 1 by passing a weighted sum through the sigmoid and comparing it to a threshold.

You'll learn Logistic regressionThresholds
aimachine learning
No solutions yet
Medium

Byte Pair Encoding (BPE) Merges

Learn subword merges the way GPT tokenizers do: repeatedly merge the most frequent pair of adjacent symbols.

You'll learn BPESubword tokenization
aimachine learning
No solutions yet
Medium

Parallel Task Completion Order

Run tasks concurrently with at most k at a time and report the order in which they finish.

You'll learn ConcurrencyPriority queues
SimulationSorting
No solutions yet
Easy

One-Hot Encoding

Turn categories into vectors with a single 1, the input format for classifiers and embeddings.

You'll learn One-hot vectorsCategorical data
aimachine learning
No solutions yet
Easy

Join Customers and Orders

Join customers with their orders like a LINQ Join and report each customer's total spend.

You'll learn LINQ JoinGrouping
ArraysSorting
No solutions yet
Easy

Linked List Operations

Simulate a linked list: add at either end, remove from the front or by value, and reverse it.

You'll learn Linked listsSimulation
Data-structuresSimulation
No solutions yet
Easy

Event Subscribers

Deliver events to the subscribers of each topic, observer style, and count what everyone receives.

You'll learn Observer patternDictionaries
Design patternsSimulationStrings
No solutions yet
Easy

Price Decorators

Wrap a base price in discount, tax, shipping and coupon decorators applied in order.

You'll learn Decorator patternPercentages
Design patternsSimulationmath
No solutions yet
Easy

Sort by a Chosen Key

Sort people by name or by age with a comparer chosen at run time, breaking ties consistently.

You'll learn ComparersSorting
ArraysSorting
No solutions yet
Medium

Min Stack

Build a stack that reports its smallest element instantly after any push or pop.

You'll learn StacksRunning minimum
Data-structuresStacks
No solutions yet
Easy

Notification Costs

Send messages through email, SMS and push channels that each compute their own cost.

You'll learn PolymorphismInteger division
SimulationStrings
No solutions yet
Easy

Checkout Facade

Hide stock checks and price totals behind one simple checkout call.

You'll learn Facade patternValidation
ArraysDesign patternsSimulation
No solutions yet
Easy

One Shared Configuration

Simulate a singleton settings object: every part of the program reads and writes the same instance.

You'll learn SingletonShared state
BeginnerDesign patternsSimulation
No solutions yet
Easy

WhenAll Total Time

Find how long a program takes when each group of tasks runs together with Task.WhenAll and groups run one after another.

You'll learn Async/awaitTask.WhenAll
ArraysBeginner
No solutions yet
Easy

Format an Invoice

Print invoice lines and a total with amounts stored in cents, formatted as dollars and cents.

You'll learn Money in centsString formatting
BeginnerStrings
No solutions yet
Easy

Unique Records

Remove duplicate records that are equal by value, keeping the first of each in order.

You'll learn RecordsValue equality
BeginnerStrings
No solutions yet
Easy

Bank Account Rules

Protect an account's balance behind deposit and withdraw rules, rejecting invalid operations.

You'll learn EncapsulationBusiness rules
BeginnerSimulation
No solutions yet
Easy

Split a List Into Chunks

Cut a list into consecutive groups of a fixed size, with a shorter last group if needed.

You'll learn SlicingBatching
ArraysBeginner
No solutions yet