10658
ага
нет, n
Vladislav
Vladislav
А только латиница?
10658
да
Vladislav
хм, вообще, чтоб было проще - можно алфавит в массив запихать. Или так лучше не делать?
Igor
Просто не хочется заморачиваться с индексами, я с ними всегда путаюсь... Всякие (c-s+13)%(e-s+1)
отнимаем начало и потом просто вращаем по модулю от нуля (в смысле что индекс буквы а теперь нулевой) :) это наверное си++ травма из за дурацкого деления по остатку :)
Vladimir
Igor
хм, вообще, чтоб было проще - можно алфавит в массив запихать. Или так лучше не делать?
Андрей это и делает вообще есть ascii_lowercase ascii_uppercase c английским алфавитом
Vladislav
что это?
в массив запихивать алфавит
Vladislav
а какая максимальная длина строки?
Igor
ого
Идея Андрея def rot13(message): from string import ascii_lowercase, ascii_uppercase encode = dict(zip(ascii_lowercase, ascii_lowercase[13:]+ ascii_lowercase)) encode.update(zip(ascii_uppercase, ascii_uppercase[13:]+ ascii_uppercase)) return ''.join(encode.get(c, c) for c in message)
Калыван
Where
Here
Vladislav
Here
you?
Калыван
Of course my boy
Vladislav
Vladislav
спасити
Калыван
Артур
Ы, это же шифр Цезаря) Пару недель назад Игоря трепал на эту же тему)
о, Олег вы тут, насколько далеко уже прошли продвинутый курс?
Oleg
о, Олег вы тут, насколько далеко уже прошли продвинутый курс?
Да все там же, не двигался почти Сейчас в офлайне, на завод устроился
Igor
на питоне это можно красиво реализовать. Попробую на Си)
Было бы желание :) #include <string> #include <algorithm> using namespace std; string rot13(string msg) { char encode[256]; for (int i=0; i<256; i++) encode[i] = i; rotate(encode + 'a', encode + 'n', encode+'z'+ 1); rotate(encode + 'A', encode + 'N', encode+'Z'+ 1); for(int i=0; i<msg.length(); i++) msg[i] = encode[msg[i]]; return msg; }
Igor
в нет аски алфавита зато есть ротейт :)
Igor
и да будет куча варнингов нужно преобразования делать :)
Igor
но кому это интересно на кв :)
Vladislav
что за encode?
Igor
что за encode?
просто аски таблицу накидал и изменил нужные диапазоны
Andrii
Идея Андрея def rot13(message): from string import ascii_lowercase, ascii_uppercase encode = dict(zip(ascii_lowercase, ascii_lowercase[13:]+ ascii_lowercase)) encode.update(zip(ascii_uppercase, ascii_uppercase[13:]+ ascii_uppercase)) return ''.join(encode.get(c, c) for c in message)
Люблю повитиеватее: def make_caesar(n, *ranges): gen_str_seq = lambda first, last: [chr(code) for code in range(ord(first), ord(last)+1)] letters = [ gen_str_seq(first, last) for first, last in ranges ] decode = dict(sum((list(zip(s, s[n:] + s)) for s in letters), [])) encode = { v: k for k, v in decode.items() } apply = lambda s, table: ''.join(table.get(ch, ch) for ch in s) return tuple(functools.partial(apply, table=table) for table in (decode, encode)) encode, decode = make_caesar(13, ('A', 'Z'), ('a', 'z')) encode('abcXYZ') >>> 'nopKLM' decode(encode('abcXYZ')) >>> 'abcXYZ'
Igor
если бы я знал эти методы. так бы сделал. НО пойду делать по своему, по кривому)
так эти методы и не нужны это по аналогии на самом деле так делать не стоит :)
Andrii
оно конечно на любителя :) но я уже не готов сходу сказать что тут происходит :)
Там функциональщина... Без изменяемых переменных, условий, ...
Andrii
а смысл так писать в питоне? :)
Ну... некоторые, которых укусив хаскель, возвращаются назад и пишут в таком стиле. Вопрос вкуса, привычек... Говорят меньше возможностей ошибиться
Антон
привет народ. было ли у кого-нибудь так в самом начале что боитесь начать программировать из-за того что может не получиться?
Andrii
вы реально верите что в этом проще ошибиться? :) особенно собирать строки через sum :) это шикарно
Там reduce из функционального мира. В принципе логика такова: у нас два диапазона, большие и маленькие буквы. До поры до времени мы их обрабатываем параллельно, а потом объединяем результаты (reduce) и далее работает с ними
Andrii
привет народ. было ли у кого-нибудь так в самом начале что боитесь начать программировать из-за того что может не получиться?
Ну... всё получалось с самого начала... А неполучится? В этом то и прикол понял, почему не работает!
Anonymous
А чем тебе hh не нравится?
Я стажировку ищу. Как не странно на Hh не особо много предложений о стажировке, поэтому приходиться на другие сайты заходить, где нету варианта сделать такое же резюме как на hh.
Anonymous
приходиться кастомные делать
Andrii
Там список пар символов, два списка для прописных и строчных. Их надо объединить. Ну а дизайн такой, что пользователь может сам ввести неограниченное количество диапазонов для кодирования
Anonymous
кстати насчет hh.ru как-будто там мало что есть)))
Ну ты посмотри вакансии android стажеров.
Igor
вообще нужно заюзать транслейт :) так веселей :) def rot13(message): encode = {} for a in (ord('a'), ord('A')): encode.update((c + a, (c + 13) % 26 + a) for c in range(26)) return message.translate(encode)
Andrii
Ну... дикт строится кучу раз для каждой строки, строки и константы захардкожены
Igor
ладна хуйней страдаем :) 5 кью пол дня разбираем :)
Alexander
10658
там же написано encode = cheating
Igor
нельзя использовать инкод
это название массива в моей программе :)
Igor
нада в стиле пошли нахуй я питонист я пишу в функциональном стиле ) rot13 = lambda m: m.translate(dict(itertools.chain(*(((c + a, (c + 13) % 26 + a) for c in range(26)) for a in (ord('a'), ord('A'))))))
10658
я запомнил эту фразу с питонтьтор на всю жизнь
Alexander
@dzimtryNavumau, Дима, смотри чего нашёл: https://indicator.ru/mathematics/reshena-odna-iz-zadach-tysyacheletiya-09-09-2021.htm
Артур
Да все там же, не двигался почти Сейчас в офлайне, на завод устроился
Вы главное, не переставайте практиковаться, а то у меня фидбек по перерыву, решил совсем бросить, в итоге видимо лучше работать в каком-то среднем темпе, чтобы не выпадать на крайностях
AnaGal🍵🫖
SQL привет) у меня опять вопрос по SQL, помогите пожалуйста я пытаюсь решить задачу, но у меня не выводится вторая строчка, не понимаю, как доработать запрос(
AnaGal🍵🫖
Igor
вам же нужен left join для возраста
AnaGal🍵🫖
вам же нужен left join для возраста
я пробовала им, лишние строчки выводятся
Igor
дайте текст запроса