Daniil
чекните потом?
Andrew
https://github.com/cd48b153/hashmap-contest
Andrew
гляньте тут
Lupusregina[beta]
Andrew
)
Andrew
https://github.com/flesler/hashmap
Daniil
гляньте тут
ну ты красава
Lupusregina[beta]
ну ты красава
свое пиши, давай
Lupusregina[beta]
выкрасть код то любой может
Daniil
да эт полюбэ
Daniil
но подсмотреть полезно
Daniil
каждый раз встречаюсь с интересными решениями
Егор 🐟
Так-с, @igorz :D
Lupusregina[beta]
каждый раз встречаюсь с интересными решениями
const hashFn = (key) => { let hash = 1; let tmp = 0; for(let i = 0; i < key.length; i++) { tmp ^= key[i].charCodeAt(); tmp <<= 1; hash ^= tmp; } return hash; }; class HashMap { constructor(hashFn, arrSize = [8, 16, 20]) { this.hashFn = hashFn; this.arrSize = arrSize.slice(); this.size = 0; this.table = []; this.length = 0; this.array = []; this._resize(); } _resize() { this.size = this.arrSize.shift(); if ( !this.size ) throw new Error("Max size"); this.table = Array(1 << this.size).fill(null); for(let i = 0; i < this.array.length; i++) this._add(this.array[i][0], i); } _add(key, i) { const index = this.hashMod(this.hashFn(key), this.size); if ( !this.table[index] ) { this.table[index] = [i]; return; } this.table[index].push(i); } hashMod(hash, numBits) { return hash & ~(1 << numBits); } has(key) { key = `${key}`; const index = this.hashMod(this.hashFn(key), this.size); const sub = this.table[index]; if ( !sub ) return false; for(const i of sub) if ( this.array[i][0] === key ) return true; return false; } get(key) { key = `${key}`; const index = this.hashMod(this.hashFn(key), this.size); const sub = this.table[index]; if ( !sub ) return null; for(const i of sub) if ( this.array[i][0] === key ) return this.array[i][1]; return null; } set(key, value) { key = `${key}`; const index = this.hashMod(this.hashFn(key), this.size); const sub = (this.table[index] = this.table[index] || []); for(const i of sub) if ( this.array[i][0] === key ) { this.array[i][1] = value; return; } sub.push(this.array.length); this.array.push([key, value]); if ( this.array.length >= (1 << this.size) ) this._resize(); } del(key) { key = `${key}`; const index = this.hashMod(this.hashFn(key), this.size); const sub = this.table[index]; if ( !sub ) return false; let j = 0; for(const i of sub) { if ( this.array[i][0] === key ) { sub.splice(j, 1); this._moveLast(i); return true; } j++; } return false; } _moveLast(i) { const lastI = this.array.length-1; const last = this.array[lastI]; const sub = this.table[ this.hashMod(this.hashFn(last[0]), this.size) ]; sub[ sub.indexOf(lastI) ] = i; this.array[i] = last; this.array.length--; } } Вот что я сделал. Только фун-я хеша не эфективная. Также возможны ошибки
Syntax Highlight Bot
const hashFn = (key) => { let hash = 1; let tmp = 0; for(let i = 0; i < key.length; i++) { tmp ^= key[i].charCodeAt(); tmp <<= 1; hash ^= tmp; } return hash; }; class HashMap { constructor(hashFn, arrSize = [8, 16, 20]) { this.hashFn = hashFn; this.arrSize = arrSize.slice(); this.size = 0; this.table = []; this.length = 0; this.array = []; this._resize(); } _resize() { this.size = this.arrSize.shift(); if ( !this.size ) throw new Error("Max size"); this.table = Array(1 << this.size).fill(null); for(let i = 0; i < this.array.length; i++) this._add(this.array[i][0], i); } _add(key, i) { const index = this.hashMod(this.hashFn(key), this.size); if ( !this.table[index] ) { this.table[index] = [i]; return; } this.table[index].push(i); } hashMod(hash, numBits) { return hash & ~(1 << numBits); } has(key) { key = `${key}`; const index = this.hashMod(this.hashFn(key), this.size); const sub = this.table[index]; if ( !sub ) return false; for(const i of sub) if ( this.array[i][0] === key ) return true; return false; } get(key) { key = `${key}`; const index = this.hashMod(this.hashFn(key), this.size); const sub = this.table[index]; if ( !sub ) return null; for(const i of sub) if ( this.array[i][0] === key ) return this.array[i][1]; return null; } set(key, value) { key = `${key}`; const index = this.hashMod(this.hashFn(key), this.size); const sub = (this.table[index] = this.table[index] || []); for(const i of sub) if ( this.array[i][0] === key ) { this.array[i][1] = value; return; } sub.push(this.array.length); this.array.push([key, value]); if ( this.array.length >= (1 << this.size) ) this._resize(); } del(key) { key = `${key}`; const index = this.hashMod(this.hashFn(key), this.size); const sub = this.table[index]; if ( !sub ) return false; let j = 0; for(const i of sub) { if ( this.array[i][0] === key ) { sub.splice(j, 1); this._moveLast(i); return true; } j++; } return false; } _moveLast(i) { const lastI = this.array.length-1; const last = this.array[lastI]; const sub = this.table[ this.hashMod(this.hashFn(last[0]), this.size) ]; sub[ sub.indexOf(lastI) ] = i; this.array[i] = last; this.array.length--; } } Вот что я сделал. Только фун-я хеша не эфективная. Также возможны ошибки
Lupusregina[beta]
const hashFn = (key) => { let hash = 1; let tmp = 0; for(let i = 0; i < key.length; i++) { tmp ^= key[i].charCodeAt(); tmp <<= 1; hash ^= tmp; } return hash; }; class HashMap { constructor(hashFn, arrSize = [8, 16, 20]) { this.hashFn = hashFn; this.arrSize = arrSize.slice(); this.size = 0; this.table = []; this.length = 0; this.array = []; this._resize(); } _resize() { this.size = this.arrSize.shift(); if ( !this.size ) throw new Error("Max size"); this.table = Array(1 << this.size).fill(null); for(let i = 0; i < this.array.length; i++) this._add(this.array[i][0], i); } _add(key, i) { const index = this.hashMod(this.hashFn(key), this.size); if ( !this.table[index] ) { this.table[index] = [i]; return; } this.table[index].push(i); } hashMod(hash, numBits) { return hash & ~(1 << numBits); } has(key) { key = `${key}`; const index = this.hashMod(this.hashFn(key), this.size); const sub = this.table[index]; if ( !sub ) return false; for(const i of sub) if ( this.array[i][0] === key ) return true; return false; } get(key) { key = `${key}`; const index = this.hashMod(this.hashFn(key), this.size); const sub = this.table[index]; if ( !sub ) return null; for(const i of sub) if ( this.array[i][0] === key ) return this.array[i][1]; return null; } set(key, value) { key = `${key}`; const index = this.hashMod(this.hashFn(key), this.size); const sub = (this.table[index] = this.table[index] || []); for(const i of sub) if ( this.array[i][0] === key ) { this.array[i][1] = value; return; } sub.push(this.array.length); this.array.push([key, value]); if ( this.array.length >= (1 << this.size) ) this._resize(); } del(key) { key = `${key}`; const index = this.hashMod(this.hashFn(key), this.size); const sub = this.table[index]; if ( !sub ) return false; let j = 0; for(const i of sub) { if ( this.array[i][0] === key ) { sub.splice(j, 1); this._moveLast(i); return true; } j++; } return false; } _moveLast(i) { const lastI = this.array.length-1; const last = this.array[lastI]; const sub = this.table[ this.hashMod(this.hashFn(last[0]), this.size) ]; sub[ sub.indexOf(lastI) ] = i; this.array[i] = last; this.array.length--; } } Вот что я сделал. Только фун-я хеша не эфективная. Также возможны ошибки
а, тут в хашьмод ошибка, надо return hash & ((1 << numBits) - 1);
Lupusregina[beta]
const hashFn = (key) => { let hash = 1; let tmp = 0; for(let i = 0; i < key.length; i++) { tmp ^= key[i].charCodeAt(); hash ^= tmp; tmp <<= 3; } return hash; }; вот получше функция хеша, 50-60% заполнения
Lupusregina[beta]
лол. Это даже работает, всего в 4-10(для записи) и в 3-5(для чтения) раз медлннее нативного мап(если я не допустил ошибки во время теста канешн)
Lupusregina[beta]
😕
Oleg
кто-то пользовался jexl? как создать функцию с помощью addTransform так, чтоб в неё можно было передать объект, а не только строку?
Oleg
как мне в строке ({"a":"qdqwe", b: "dddd"}) найти именно части с :"xxxx"? с помощью регулярок, да?
Oleg
мне нужно будет потом заменить эти кавычки.
Dmitry
Веб-сервис помощи парикмахерам в закупке рабочего оборудования
Dmitry
Веб-каталог какой-нибудь)
Igor
проектирование и разработка программного обеспечения для придумай сам с использованием веб-фреймворка django
Igor
ну тогда Разработка веб-сервиса для парикмахеров с использованием React
Igor
у тебя тз для чата нечеткое)
Gabriel
Ребят, есть проблема: В браузере при логине я получаю одноразовый пароль на почту, но когда делаю логин скриптом ответ от сервера практически такой же, но код не приходит
Gabriel
В чем может быть проблема? Я даже не знаю как это гуглить
Gabriel
Привет. Он и так не отличим от браузерного, те же заголовки
Gabriel
Поэтому я и не понимаю в чем дело.
Gabriel
при первичном входе отправляется одноразовый код на почту. В браузере респонс такой: {"success":false,"requires_twofactor":false,"message":"","emailauth_needed":true,"emaildomain":"gmail.com","emailsteamid":"76561198978786005"} и код приходит на почту. В ноде ответ такой: { success: false, requires_twofactor: false, message: '', emailauth_needed: true, emaildomain: '', emailsteamid: '76561198978786005' }
Gabriel
Вот почему ключ emaildomain пустой я не понимаю
Gabriel
Порядок тот же, запросов наотсылал больше 5, сайт https://store.steampowered.com
Gabriel
Разница в том, что в браузере откуда невозьмись в request появляются cookie от стима, откуда они берутся я понять не могу
Gabriel
Именно
Gabriel
После того как зашифровал посылаю на роут dologin
Gabriel
Непонятна проблема с отправкой кодов при условии, что куки тащатся в jar, запросы сформированы верно и шифрование тоже
Gabriel
Тогда не подскажешь где хранятся кукисы?
Gabriel
В этом твоем puppeteer)
Gabriel
1. С шифрованием маялся 2 дня, когда неверно зашифровано, сервер шлет со специфическим сообщением 2. Заголовки сравнивал, не добавлял accept: gzip... потому что так не работает
Gabriel
Спасибо
Denisio
от клавиатуры зависит
Denisio
сколько нажатий одновременно она может обрабатывать
Denisio
например можно нажать одновременно a s и они будут генерировать поток as
Denisio
а вот 5 клаивш нажмешь однвременно - и уже всё
Denisio
причем зависит какие именно 5 клавиш
Denisio
ну флаги ставить
Denisio
это только с shift,ctrl,alt
Denisio
с ними такое прокатит
Rustem
подскажите как выдернуть data из https://jsonp.afeld.me/?callback=myCallback&url=http://www.cbr.ru/scripts/XML_daily.asp?date_req=02/03/2002 . в настоящий момент получают response ч/з axios и вся инфа идет строкой
Denisio
может проще дернуть xml и разобрать, чем использовать сторонний сервис
Rustem
например как??? тут сплитовать не вариант, хз чет голову не приходит ни чего
Rustem
ну да там XML, который потом я буду преобразовывать в JSON
Rustem
я не нашел у ЦБ РФ JSON формата( только xml
Denisio
У них ещё и cors нету
Rustem
https://yarnpkg.com/ru/package/xml2js мне к этому хотелось подвести, вот только для этого пакета нужно переменную подготовить с чистым XML
Rustem
спасибо, хорошу ссылку прислал, но там JSON не позволяет исторические разрезы делать и металлов я там не нашел(, но в любом случае спасибо
Rustem
шутишь) я картинки в дизайне на красивые графики меняю)
Sergey
Как регулярной зцепить в строке <select:lorem 342 ipsum> всё, что между <select: и >?
Sergey
Такая вот /<select:.*>/gm цепляет все остальные > в строке
Sergey
Это псевдокод для парсера
Sergey
Надо регулярка, которая выцедил всё между <select: и >, не зацепая остальные >
Sergey
Тогда оно мне матчит всё, включая select: и >
Sergey
А мне именно между select: и > содержимое надо
Anonymous
<noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=0000000000000000&ev=PageView&noscript=1" /></noscript> Подскажи плиз, как вынести 0000000000000000 :)
Anonymous
Агась
Syntax Highlight Bot
Anonymous
От души)
Artyom
Ребят, есть проблема: В браузере при логине я получаю одноразовый пароль на почту, но когда делаю логин скриптом ответ от сервера практически такой же, но код не приходит
Проблема скорее всего именно в "практически такой же". Рекомендую установить Fiddler и через него сопоставить запросы браузера и скрипта. Я таким образом не один сервис реверсил, чтобы баланс ЛК получать.
Денис
Как сделать второй вариант переключения?
Денис
Денис
У меня сейчас все мертво, переключение идет, но анимаций никаких, но как его сделать?
Demetrio
У меня сейчас все мертво, переключение идет, но анимаций никаких, но как его сделать?
Цифру в отдельный span и через css анимацию прокручивать вверх
Sergey
Есть ли аналог ChildNode.replaceWith() изменяющего не тукущую ноду, а создающую новый nodelist с изменённой?
Name
Есть необходимость подписывать документы в браузере с ЭЦП. Требуется поддержка всех ОС и ИЕ, Хром, Фокс, Сафари. Посоветуете решения?
Sergey
Взял неживой NodeList buffer = outputContainer.querySelectorAll("input,select,textarea"); Хочу заменить ноды на другие шаблоны (с живым NodeList это прокатывает) http://prntscr.com/ojrxfz В результате старый NodeList не меняется, а в новый результат node.replaceWith() летит undefined http://prntscr.com/ojrxy2 Что ему не нравится?!