This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// tries.c | |
// chitchat | |
// | |
// Created by Ben Oliver on 06/11/15. | |
// Copyright © 2015 Ben Oliver. All rights reserved. | |
// | |
// assume that we allow 8 char sequences from an alphabet of 26 characters | |
// there are 26 ^ 8 possible sequences 208,827,064,576 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def balancedSmileys(string): | |
def f(string,string_len,i,count): | |
while i < string_len: | |
w = string[i] | |
if w == '(': | |
# keep track of how many left brackets we have seen | |
count += 1 | |
elif w == ')': | |
# decrement "stack" | |
count -= 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Main where | |
import System.IO | |
import System.Environment (getArgs) | |
balancedSmileys ('(':xs) count = balancedSmileys xs (count + 1) | |
balancedSmileys (')':xs) count = (count > 0) && (balancedSmileys xs (count - 1)) | |
balancedSmileys (':':x:xs) count = if (x == '(') || (x == ')') | |
then (balancedSmileys xs count) || (balancedSmileys (x:xs) count) | |
else (balancedSmileys (x:xs) count) | |
balancedSmileys (x:xs) count = balancedSmileys xs count |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open Core.Std | |
module MiniTypeChecker = struct | |
type t = U | Int | Bool | A of t * t | |
type e = Var of string | Abs of string * t * e | App of e * e | |
let compose_types x y = match (x,y) with (_,U) -> U | (U,_) -> U | _ -> A (x,y) | |
let apply_types x y = match x with A (a,b) -> if a = y then b else U | _ -> U | |
let get_type ctx = function | |
| "T" -> Bool | "F" -> Bool | |
| x -> try int_of_string x |> ignore ; Int |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from operator import itemgetter | |
def dijkstra_multi_query(edges, edge_weights, s, terminals): | |
# terminals is a set of vertices t that we want to find the distance to | |
# given a start vertex s | |
count = len(terminals) | |
optimal = {} # vertices that we know the min path to { vertex : weight } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def dfs_pre_order(root,edges): | |
stack = [root] | |
visited = set() | |
while stack: | |
v = stack.pop() | |
if v not in visited: | |
print "PRE-ORDER visting: " + v | |
visited.add(v) | |
for u in edges[v]: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn invert-one-to-one | |
"returns a one-to-one mapping" | |
[m] | |
(persistent! | |
(reduce (fn [m [k v]] (assoc! m v k)) (transient {}) m))) | |
(defn invert-many-to-one | |
"returns a one-to-many mapping" | |
([m] (invert-many-to-one #{} m)) | |
([to m] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns dijkstra.core | |
(:require [clojure.data.priority-map :refer [priority-map]])) | |
(def ^:private ^:const infinity ##Inf) | |
(defmacro infinity? [x] `(= ~x ##Inf)) | |
(defn- construct-path [m start end] | |
(loop [weight 0 | |
path (list) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns bitmap | |
(:require [clojure.core.matrix :as matrix] | |
[clojure.java.io :as io]) | |
(:import | |
java.awt.image.BufferedImage | |
javax.imageio.ImageIO | |
java.awt.Color | |
java.io.File)) | |
(matrix/set-current-implementation :vectorz) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns simple-router) | |
(defn- update-handlers | |
;; utility fn to update all values keyed by `::handlers` in routes using `f` | |
[routes f] | |
(reduce-kv (fn [routes k v] | |
(if (= k ::handlers) | |
(assoc routes k (update-vals v f)) | |
(assoc routes k (update-handlers v f)))) | |
{} |