Stripe sandbox · Test payments only. Use synthetic @example.test accounts. No real charges.

Small challenges.
Stronger problem solving.

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

Try a free problem
Clear

100 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 pack01Palindrome checkPython · Two pointers, one clear invariantEasyFree02Reverse a messagePython · Indexing and slicingEasyFree03Count a symbolPython · Python’s string modelEasyFree04First unique characterPython · Frequency mapsEasyFree05Compact spacesPython · Methods and normalizationEasyFree06Remove a symbolPython · Complexity and efficient constructionEasyPractice pack07Shared prefixPython · Indexing and slicingEasyPractice pack08ASCII digit totalPython · Parsing and validationEasyPractice pack09Count English vowelsPython · Methods and normalizationEasyPractice pack10Squeeze repeated runsPython · Complexity and efficient constructionEasyPractice pack11Rotate leftPython · Indexing and slicingEasyPractice pack12Is it a subsequence?Python · Two pointers, one clear invariantEasyPractice pack13Word initialsPython · Methods and normalizationEasyPractice pack14Balanced parenthesesPython · Parsing and validationEasyPractice pack15Equal-length difference countPython · Python’s string modelEasyPractice pack16Longest repeated runPython · Complexity and efficient constructionEasyPractice pack17Group anagramsPython · Anagrams and groupingMediumPractice pack18Longest unique windowPython · Sliding windowsMediumPractice pack19Anagram start indicesPython · Sliding windowsMediumPractice pack20Encode character runsPython · Complexity and efficient constructionMediumPractice pack21Compare typed messagesPython · Two pointers, one clear invariantMediumPractice pack22Validate mixed bracketsPython · Parsing and validationMediumPractice pack23Reverse word orderPython · Methods and normalizationMediumPractice pack24Decode letter runsPython · Parsing and validationMediumPractice pack25Partition independent lettersPython · Frequency mapsMediumPractice pack26One deletion palindromePython · Two pointers, one clear invariantMediumPractice pack27Consistent character mappingPython · Frequency mapsMediumPractice pack28Word pattern mappingPython · Anagrams and groupingMediumPractice pack29Longest palindromic substringPython · Two pointers, one clear invariantMediumPractice pack30Find overlapping matchesPython · Substring searchMediumPractice pack31Anagram deletion distancePython · Anagrams and groupingMediumPractice pack32Window with at most k charactersPython · Sliding windowsMediumPractice pack33Cancel adjacent pairsPython · Choosing a solution patternMediumPractice pack34Compare numeric versionsPython · Parsing and validationMediumPractice pack35Minimum covering windowPython · Sliding windowsHardPractice pack36Edit distancePython · Interview walkthroughHardPractice pack37Wildcard matchingPython · Interview walkthroughHardPractice pack38Count word segmentationsPython · Choosing a solution patternHardPractice pack39Linear substring searchPython · Substring searchHardPractice pack40Minimum palindrome cutsPython · Interview walkthroughHardPractice pack41Canonical label keyPython · Unicode and comparison policiesEasyPractice pack42ASCII separator slugPython · Unicode and comparison policiesEasyPractice pack43Word size profilePython · Streaming across chunk boundariesEasyPractice pack44Trim one exact suffixPython · Regular expressions with a contractEasyPractice pack45Keep the first caseless labelPython · Unicode and comparison policiesMediumPractice pack46Split an ASCII camel namePython · Regular expressions with a contractMediumPractice pack47Read a quoted recordPython · Quoting, escaping, and nested inputMediumPractice pack48Split escaped pipe fieldsPython · Quoting, escaping, and nested inputMediumPractice pack49Ordered prefix suggestionsPython · Tries and prefix queriesMediumPractice pack50Shortest distinguishing prefixesPython · Tries and prefix queriesMediumPractice pack51Count words across chunksPython · Streaming across chunk boundariesMediumPractice pack52Count streamed pattern matchesPython · Streaming across chunk boundariesMediumPractice pack53Validate a decimal tokenPython · Regular expressions with a contractMediumPractice pack54Repeated fixed-width fragmentsPython · Streaming across chunk boundariesMediumPractice pack55Check an interleaved weavePython · Dynamic programming for string choicesHardPractice pack56Count target subsequencesPython · Dynamic programming for string choicesHardPractice pack57Shortest common supersequence sizePython · Dynamic programming for string choicesHardPractice pack58Smallest ordered covering substringPython · Dynamic programming for string choicesHardPractice pack59Decode nested repeatsPython · Quoting, escaping, and nested inputHardPractice pack60Longest insertion word chainPython · Dynamic programming for string choicesHardPractice pack

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