Skip to content

Instantly share code, notes, and snippets.

View lexich's full-sized avatar
🌊
🦭

Alexey Efremov lexich

🌊
🦭
View GitHub Profile
@lexich
lexich / iscorrect.php
Last active December 11, 2015 00:58
assert(isCorrect('{({({({()})})})}') === true);
<?php
/*
* Логгер
*
* @param string $txt текст для логгирования
*/
function _log($txt){
//print("$txt\n");
}
@lexich
lexich / bind.js
Created January 30, 2013 20:01
Simple realization bind function on javascript
var bind = function(callee,context){
return (function(){
return callee.apply(context,arguments);
});
};
var TestClass = function(options){
this.txt = options.txt;
};
TestClass.prototype = {
@lexich
lexich / circles.1.in
Last active December 12, 2015 00:19
**Задача7** Две окружности (Всероссийская олимпиада школьников по информатике Третий этап, второй тур)[http://codeforces.ru/gym/100157/attachments/download/1452/20122013-vsyerossiyskaya-olimpiada-shkolnikov-po-informatikye-ryegionalnyy-etap-2-tur-ru.pdf]
7
1 -1
0 0
1 1
3 1
3 -1
2 0
4 0
@lexich
lexich / monitor.py
Last active December 12, 2015 10:48
monitoring RAM level linux only
#!/usr/bin/python3
import subprocess
import re
import time
from datetime import datetime
#Path to log file
LOG_PATH = "/var/log/monitor.memory.log"
@lexich
lexich / PhilosopherRunner.java
Created May 6, 2013 10:31
Условие: Пять безмолвных философов сидят вокруг круглого стола, перед каждым философом стоит тарелка спагетти. Вилки лежат на столе между каждой парой ближайших философов. Каждый философ может либо есть, либо размышлять. Приём пищи не ограничен количеством оставшихся спагетти — подразумевается бесконечный запас. Тем не менее, философ может есть …
/*
Условие:
Пять безмолвных философов сидят вокруг круглого стола, перед каждым философом стоит тарелка спагетти.
Вилки лежат на столе между каждой парой ближайших философов.
Каждый философ может либо есть, либо размышлять.
Приём пищи не ограничен количеством оставшихся спагетти — подразумевается бесконечный запас.
Тем не менее, философ может есть только тогда, когда держит две вилки — взятую справа и слева
(альтернативная формулировка проблемы подразумевает миски с рисом и палочки для еды вместо тарелок со спагетти и вилок).
Каждый философ может взять ближайшую вилку (если она доступна), или положить — если он уже держит её.
Взятие каждой вилки и возвращение её на стол являются раздельными действиями, которые должны выполняться одно за другим.
# opt.sources = "#id1,#id2,#id3"
data = _.reduce $(opt.sources),((memo, el)->
$item = $(el)
if $item.is("input[type='radio']")
if $item.is(":checked")
memo[$item.attr("name")] = $item.is(":checked")
else if $item.is("input[type='checkbox']")
memo[$item.attr("name")] = $item.is(":checked")
else
memo[$item.attr("name")] = $item.data("value") ? $item.val()
@lexich
lexich / calculate.js
Created August 7, 2013 06:56
Напишите на JavaScript функцию, которая выводит список всех чисел, которые равны сумме факториалов своих цифр. Пример такого числа: 4! + 0! + 5! + 8! + 5! = 40585
var Service = {
factorial: function(val){
var result = 1;
for(var i = 1; i<=val; ++i){
result *= i;
}
return result;
},
getNumber:function(value, pos){
if(pos < 0){ return null; }
@lexich
lexich / README.md
Last active December 30, 2015 04:28
В системе авторизации есть ограничение — логин должен начинаться с латинской буквы, он может состоять из латинских букв, цифр, точки и минуса, но заканчиваться только латинской буквой или цифрой; минимальная длина логина составляет 1 символ, максимальная — 20 символов. Пожалуйста, напишите код, проверяющий соответствие входной строки этому прави…

Из 2х представленных методов валидации, валидация регулярным выражением (regexp.py) выигрывает в 10 раз (speed.py) по скорости у метода парсинга строки по-буквенно(split.py), более компактно выглядит 2 строки против 36 и более поддерживаемо и менее подвержено ошибкам.

@lexich
lexich / zip2.py
Created December 3, 2013 20:21
Есть два списка разной длины. В первом содержатся ключи, а во втором значения. Напишите функцию, которая создаёт из этих ключей и значений словарь. Если ключу не хватило значения, в словаре должно быть значение None. Значения, которым не хватило ключей, нужно игнорировать
def zip2(keys,values):
res = {}
it = iter(values)
nullValue = False
for key in keys:
try:
res[key] = it.next() if not nullValue else None
except StopIteration:
nullValue = True
res[key] = None
@lexich
lexich / message_count.sql
Created December 3, 2013 20:43
Есть 2 таблицы — users и messages: users UID Name 1. Платон Щукин 2. Лера Страза 3. Георгий Атласов messages UID msg 1 – "Привет, Платон!" 3 – "Срочно пришли карту." 3 – "Жду на углу Невского и Тверской." 1 – "Это снова я, пиши чаще" Напишите SQL-запрос, результатом которого будет таблица из двух полей: «Имя пользователя» и «Общее количество соо…
CREATE TABLE users
(
UID int auto_increment primary key,
Name varchar(20)
);
INSERT INTO users
(UID, Name)
VALUES
(1, 'Платон Щукин'),