Skip to content

Instantly share code, notes, and snippets.

View orsinium's full-sized avatar
🔥
orsinium.dev

Gram orsinium

🔥
orsinium.dev
View GitHub Profile
@orsinium
orsinium / boyer-mur-search.py
Created May 4, 2017 10:11
Поиск подстроки в строке
def _bm_pred_compil(x):
d = {}
lenX = len(x)
for i in range(len(x)):
# сколько символов с правого края до этой буквы
d[ord(x[i])] = lenX - i
return d
def bms(s, x):
d = _bm_pred_compil(x)
@orsinium
orsinium / damerau.py
Created May 4, 2017 10:13
Расстояние Дамерау между двумя текстами.
def f(s1, s2):
if not s1 or not s2:
return len(s1)+len(s2)
elif s1[-1]==s2[-1]:
return f(s1[:-1], s2[:-1])
else:
#вставка/удаление
a = min(f(s1[:-1], s2), f(s1, s2[:-1]))
#замена
@orsinium
orsinium / max_subset.py
Created May 4, 2017 18:10
Find maximal mutual subset in 2 sets.
def f(s1, s2):
if not s1 or not s2:
return ''
elif s1[-1]==s2[-1]:
return f(s1[:-1], s2[:-1]) + s2[-1]
else:
return max((f(s1[:-1],s2), f(s1, s2[:-1])), key=len)
@orsinium
orsinium / tor.py
Created May 4, 2017 18:11
Check tor connection: ip and time.
from grab import Grab, GrabError
from time import time
g = Grab()
t = time()
g.go('ip.appspot.com')
print(time()-t)
print(g.response.body)
g.setup(reuse_cookies=False, proxy_type='socks4', connect_timeout=5, timeout=5, proxy="127.0.0.1:9050");
from __future__ import annotations
from typing import Generic, TypeVar
T = TypeVar("T")
# ABC
class DatabaseProvider:
@orsinium
orsinium / ro.json
Created June 29, 2022 08:30
ro language dictionary (https://sorabji.com/r/ro/)
{
"ab": "I, me",
"abaq": "myself",
"abaqe": "my own",
"abaqz": "ourselves",
"abz": "we, us",
"abze": "our",
"ac": "thou, you",
"acaz": "ye",
"acaze": "your",