Skip to content

Instantly share code, notes, and snippets.

Avatar
😆

someodd someodd

😆
View GitHub Profile
@someodd
someodd / BinaryGap.hs
Last active Aug 23, 2022
Longest binary gap coding puzzle
View BinaryGap.hs
{-
# PROBLEM
A binary gap within a positive integer N is any maximal sequence of consecutive
zeros that is surrounded by ones at both ends in the binary representation of
N.
For example, number 9 has binary representation 1001 and contains a binary gap
of length 2. The number 529 has binary representation 1000010001 and contains
two binary gaps: one of length 4 and one of length 3. The number 20 has binary
@someodd
someodd / MostCandidatesFail.hs
Created Aug 23, 2022
Challenge I saw on HackerNews, "Most candidates cannot solve this interview problem."
View MostCandidatesFail.hs
{-
I saw this posted on HackerNews:
"Most candidates cannot solve this interview problem."
https://twitter.com/Al_Grigor/status/1357028887209902088
> Most candidates cannot solve this interview problem:
> Input: "aaaabbbcca"
> Output: [("a", 4), ("b", 3), ("c", 2), ("a", 1)]
@someodd
someodd / MathExpr.hs
Created Aug 23, 2022
Challenge in parsing math expressions from some kinda AST.
View MathExpr.hs
import Control.Monad.Reader
import Data.Map as Map
data Expr = Lit Int | Var String | Add Expr Expr | Let (String, Expr) Expr
eval :: Expr -> Reader (Map String Int) Int
eval (Lit i) = pure i
eval (Var s) = do
varMap <- ask
case Map.lookup s varMap of
@someodd
someodd / AdventOfCodeTwentyDayTwo.hs
Created Aug 23, 2022
Advent of Code 2020: Day 2
View AdventOfCodeTwentyDayTwo.hs
{-
Advent of Code: Day 2
Part 1 & 2
https://adventofcode.com/2020/day/2
-}
type PasswordData = ((Int, Int, Char), String)
@someodd
someodd / AdventOfCodeTwentyDayOne.hs
Created Aug 23, 2022
Advent of Code 2020: Day 1
View AdventOfCodeTwentyDayOne.hs
{-
Advent of Code: Day 1
Part 1 and 2
https://adventofcode.com/2020/day/1
-}
-- Converted using a simple find/replace vim command.
puzzleInput =
[ 1780
, 1693
@someodd
someodd / TeslaInterview.hs
Created Aug 23, 2022
Tesla interview question
View TeslaInterview.hs
{-
My attempt at a Tesla interview question:
Minimum number of characters to delete from a string so that each character
appears unique number of times. Note: You can delete all occurances of
characters.
eg: "aaaabbbb" -> 1 "a" or 1"b" would make "a" and "b" appear unique number of
times.
-}
@someodd
someodd / DoubleCola.hs
Created Aug 23, 2022
Codeforce Problem 821: Double Cola
View DoubleCola.hs
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TupleSections #-}
{-
Double Cola
https://codeforces.com/problemset/problem/82/A
EFFICIENCY REQUIREMENTS
time limit per test: 1 second
memory limit per test: 256 megabytes