Small challenges.
Stronger problem solving.

100 original Python and JavaScript problems, from first principles to interview patterns.

Try a free problem
Clear

40 problems

01Reverse Unicode code pointsJavaScript · JavaScript’s string modelEasyFree02Count ASCII capitalsJavaScript · Slicing, searching, and replacementEasyFree03Replace space runsJavaScript · Slicing, searching, and replacementEasyFree04Read the final space-delimited tokenJavaScript · Slicing, searching, and replacementEasyFree05Mask ASCII lettersJavaScript · JavaScript’s string modelEasyFree06Keep the visible tailJavaScript · JavaScript’s string modelEasyPractice pack07Collect ASCII digitsJavaScript · Slicing, searching, and replacementEasyPractice pack08Count ASCII letter runsJavaScript · Classification, casing, and equalityEasyPractice pack09Locate ASCII vowelsJavaScript · Classification, casing, and equalityEasyPractice pack10Clip a code-point previewJavaScript · JavaScript’s string modelEasyPractice pack11Alternate letter caseJavaScript · Classification, casing, and equalityEasyPractice pack12Join repeated labelsJavaScript · Building strings and measuring workEasyPractice pack13Find a shared ASCII suffixJavaScript · Two pointers and reduction stacksEasyPractice pack14First repeated code pointJavaScript · Maps, sets, and stable countsEasyPractice pack15Sorted letter histogramJavaScript · Maps, sets, and stable countsEasyPractice pack16All code points distinctJavaScript · Maps, sets, and stable countsEasyPractice pack17Stable token frequency tableJavaScript · Maps, sets, and stable countsMediumPractice pack18Group anagram positionsJavaScript · Grouping and numeric-safe sortingMediumPractice pack19Longest two-symbol intervalJavaScript · Fixed and variable sliding windowsMediumPractice pack20Maximum vowels in a fixed windowJavaScript · Fixed and variable sliding windowsMediumPractice pack21Find the smallest rotation offsetJavaScript · Searching, prefixes, and shared structureMediumPractice pack22Decode ordered query pairsJavaScript · Parsing text without evaluationMediumPractice pack23Maximum bracket nesting depthJavaScript · Parsing text without evaluationMediumPractice pack24Consecutive token runsJavaScript · Building strings and measuring workMediumPractice pack25Sort numeric dotted releasesJavaScript · Grouping and numeric-safe sortingMediumPractice pack26Extract signed integer tokensJavaScript · Parsing text without evaluationMediumPractice pack27Render named text fieldsJavaScript · Parsing text without evaluationMediumPractice pack28Remove groups of k adjacent lettersJavaScript · Two pointers and reduction stacksMediumPractice pack29Longest common contiguous blockJavaScript · Greedy choices and dynamic programsMediumPractice pack30First permutation windowJavaScript · Fixed and variable sliding windowsMediumPractice pack31Normalize an absolute logical pathJavaScript · Parsing text without evaluationMediumPractice pack32Capture a single wildcardJavaScript · Searching, prefixes, and shared structureMediumPractice pack33Read quoted command wordsJavaScript · Parsing text without evaluationMediumPractice pack34Chunk text under a UTF-16 budgetJavaScript · Classification, casing, and equalityMediumPractice pack35Minimum line-wrap penaltyJavaScript · Greedy choices and dynamic programsHardPractice pack36Find dictionary word occurrencesJavaScript · Searching, prefixes, and shared structureHardPractice pack37Shortest palindrome by prependingJavaScript · Searching, prefixes, and shared structureHardPractice pack38Smallest distinct-letter subsequenceJavaScript · Greedy choices and dynamic programsHardPractice pack39Match a tiny repetition patternJavaScript · Greedy choices and dynamic programsHardPractice pack40Enumerate dictionary segmentationsJavaScript · A complete JavaScript interview walkthroughHardPractice pack

Progress is for your own learning. Browser test results are not a verified assessment.