Explore Sign Up Log In

Write. Run.
Share.

Online compiler - run Python, JavaScript, C++ and Go right in your browser, publish snippets and fork projects

0 posts
0 users
import asyncio, hashlib, itertools
from collections import defaultdict, deque
from typing import Optional, List, Dict
class Node:
  def __init__(s,k,v,p=None,n=None):
    s.key,s.val,s.prev,s.next=k,v,p,n
class Ring:
  def __init__(s,c):
    s.cap,s.m=c,{}
    s.h,s.t=Node(0,0),Node(0,0)
    s.h.next,s.t.prev=s.t,s.h
  def _rm(s,n):
    n.prev.next,n.next.prev=n.next,n.prev
  def _ins(s,n):
    n.next,n.prev=s.h.next,s.h
    s.h.next.prev,s.h.next=n,n
  def get(s,k):
    if k in s.m:
      s._rm(s.m[k]); s._ins(s.m[k])
      return s.m[k].val
    return -1
  def put(s,k,v):
    if k in s.m: s._rm(s.m[k])
    elif len(s.m)>=s.cap:
      l=s.t.prev; s._rm(l); del s.m[l.key]
    n=Node(k,v); s.m[k]=n; s._ins(n)
class Trie:
  def __init__(s):
    s.ch,s.end=defaultdict(Trie),False
  def ins(s,w):
    n=s
    for c in w: n=n.ch[c]
    n.end=True

Instant Run

Code runs in an isolated Docker container. Results in a second

Fork & Remix

Someone's snippet - into your editor with one click. Tweak and run

Multi-file

Create folders and modules. Imports work like in a real project

Community

Likes, comments and best posts feed