95 Кб, 266x286
15 лет программирую на С++
Не могу решить easy задачку на литкоде уже 3 часа.
Ебало моё имагинировали?
задача 13. Roman to Integer с виду кажется изи...
Не могу решить easy задачку на литкоде уже 3 часа.
Ебало моё имагинировали?
задача 13. Roman to Integer с виду кажется изи...
>>06557 (OP)
Решение принципиально не смотрю.
Но кроме как городить парсер с таблицей переходов идей нету, но кажется что должно быть какое-то легкое решение в пару строк...
Решение принципиально не смотрю.
Но кроме как городить парсер с таблицей переходов идей нету, но кажется что должно быть какое-то легкое решение в пару строк...
Я просто сижу и смотрю на задачу как дурак, я нихуя не могу сообразить просто в голове пустота, я пытался начинать писать код и там по накатанной что-то сделать но всё равно ноль.
Походу я всё.
Походу я всё.
>>06582
Скорее всего твоя затыка в том что ты хочешь решить красивее чем требуется для прохождения тестов. Попробуй просто решить "в лоб"
Скорее всего твоя затыка в том что ты хочешь решить красивее чем требуется для прохождения тестов. Попробуй просто решить "в лоб"
>>06557 (OP)
А нах там что-то решать? За это не платят же.
А нах там что-то решать? За это не платят же.
>>06592
Да мне даже в лоб не приходило решение, но я и условия до конца не сразу понял, думал перед числами может быть произвольное кол-во символов и т.д. короче думаю надо писать сложный парсер который будет смотреть вперед и т.д.
>>06656
Ну чтоб на работку устроиться на новую где плотят збс.
Да и так мозги расшевелить.
Короче поздравьте меня пол дня угробил на решение изи задачи лол.
int romanToInt(string s) {
array<int, 128> t;
t['I'] = 1;
t['V'] = 5;
t['X'] = 10;
t['L'] = 50;
t['C'] = 100;
t['D'] = 500;
t['M'] = 1000;
vector<tuple<char, char, int>> states=
{
{'V', 'I', 4},
{'X', 'I', 9},
{'L', 'X', 40},
{'C', 'X', 90},
{'D', 'C', 400},
{'M', 'C', 900},
};
auto is_transition = [&](char prev, char cur) {
for(auto [ch1, ch2, v] : states)
{
if(ch1 == prev && ch2 == cur)
return tuple{true, v};
}
return tuple{false, 0};
};
int sum{};
bool post_sum = false;
while(!s.empty())
{
char prev = s.back();
s.pop_back();
if(s.empty())
{
sum += t[prev];
break;
}
char cur = s.back();
s.pop_back();
auto [trans, val] = is_transition(prev, cur);
if(trans)
{
sum += val;
}
else
{
sum += t[prev];
s.push_back(cur);
}
}
return sum;
}
Да мне даже в лоб не приходило решение, но я и условия до конца не сразу понял, думал перед числами может быть произвольное кол-во символов и т.д. короче думаю надо писать сложный парсер который будет смотреть вперед и т.д.
>>06656
Ну чтоб на работку устроиться на новую где плотят збс.
Да и так мозги расшевелить.
Короче поздравьте меня пол дня угробил на решение изи задачи лол.
int romanToInt(string s) {
array<int, 128> t;
t['I'] = 1;
t['V'] = 5;
t['X'] = 10;
t['L'] = 50;
t['C'] = 100;
t['D'] = 500;
t['M'] = 1000;
vector<tuple<char, char, int>> states=
{
{'V', 'I', 4},
{'X', 'I', 9},
{'L', 'X', 40},
{'C', 'X', 90},
{'D', 'C', 400},
{'M', 'C', 900},
};
auto is_transition = [&](char prev, char cur) {
for(auto [ch1, ch2, v] : states)
{
if(ch1 == prev && ch2 == cur)
return tuple{true, v};
}
return tuple{false, 0};
};
int sum{};
bool post_sum = false;
while(!s.empty())
{
char prev = s.back();
s.pop_back();
if(s.empty())
{
sum += t[prev];
break;
}
char cur = s.back();
s.pop_back();
auto [trans, val] = is_transition(prev, cur);
if(trans)
{
sum += val;
}
else
{
sum += t[prev];
s.push_back(cur);
}
}
return sum;
}
>>06592
Да мне даже в лоб не приходило решение, но я и условия до конца не сразу понял, думал перед числами может быть произвольное кол-во символов и т.д. короче думаю надо писать сложный парсер который будет смотреть вперед и т.д.
>>06656
Ну чтоб на работку устроиться на новую где плотят збс.
Да и так мозги расшевелить.
Короче поздравьте меня пол дня угробил на решение изи задачи лол.
int romanToInt(string s) {
array<int, 128> t;
t['I'] = 1;
t['V'] = 5;
t['X'] = 10;
t['L'] = 50;
t['C'] = 100;
t['D'] = 500;
t['M'] = 1000;
vector<tuple<char, char, int>> states=
{
{'V', 'I', 4},
{'X', 'I', 9},
{'L', 'X', 40},
{'C', 'X', 90},
{'D', 'C', 400},
{'M', 'C', 900},
};
auto is_transition = [&](char prev, char cur) {
for(auto [ch1, ch2, v] : states)
{
if(ch1 == prev && ch2 == cur)
return tuple{true, v};
}
return tuple{false, 0};
};
int sum{};
bool post_sum = false;
while(!s.empty())
{
char prev = s.back();
s.pop_back();
if(s.empty())
{
sum += t[prev];
break;
}
char cur = s.back();
s.pop_back();
auto [trans, val] = is_transition(prev, cur);
if(trans)
{
sum += val;
}
else
{
sum += t[prev];
s.push_back(cur);
}
}
return sum;
}
Да мне даже в лоб не приходило решение, но я и условия до конца не сразу понял, думал перед числами может быть произвольное кол-во символов и т.д. короче думаю надо писать сложный парсер который будет смотреть вперед и т.д.
>>06656
Ну чтоб на работку устроиться на новую где плотят збс.
Да и так мозги расшевелить.
Короче поздравьте меня пол дня угробил на решение изи задачи лол.
int romanToInt(string s) {
array<int, 128> t;
t['I'] = 1;
t['V'] = 5;
t['X'] = 10;
t['L'] = 50;
t['C'] = 100;
t['D'] = 500;
t['M'] = 1000;
vector<tuple<char, char, int>> states=
{
{'V', 'I', 4},
{'X', 'I', 9},
{'L', 'X', 40},
{'C', 'X', 90},
{'D', 'C', 400},
{'M', 'C', 900},
};
auto is_transition = [&](char prev, char cur) {
for(auto [ch1, ch2, v] : states)
{
if(ch1 == prev && ch2 == cur)
return tuple{true, v};
}
return tuple{false, 0};
};
int sum{};
bool post_sum = false;
while(!s.empty())
{
char prev = s.back();
s.pop_back();
if(s.empty())
{
sum += t[prev];
break;
}
char cur = s.back();
s.pop_back();
auto [trans, val] = is_transition(prev, cur);
if(trans)
{
sum += val;
}
else
{
sum += t[prev];
s.push_back(cur);
}
}
return sum;
}
>>06557 (OP)
Решал эту задачу пару месяцев назад. Решение действительно есть в строчек 10 основного кода. Просто не надо усложнять. Видимо какая-то проф деформация произошла. Когда всегда стараешься действовать по шаблону, рассчитывая, что задача объемная и его применение окупится.
Мимо с 10-летним опытом плюсов.
Решал эту задачу пару месяцев назад. Решение действительно есть в строчек 10 основного кода. Просто не надо усложнять. Видимо какая-то проф деформация произошла. Когда всегда стараешься действовать по шаблону, рассчитывая, что задача объемная и его применение окупится.
Мимо с 10-летним опытом плюсов.
>>06557 (OP)
Сегодня решал её утром пару часов, решил оставить на завтра. Задизморалился на весь день. Там же уровень easy, а я вроде уже не должен быть easy.
Мимо 4 года плюсов.
Сегодня решал её утром пару часов, решил оставить на завтра. Задизморалился на весь день. Там же уровень easy, а я вроде уже не должен быть easy.
Мимо 4 года плюсов.
>>06557 (OP)
Это нормально. Литкод - это же головоломки для тех, кому скучно, что-то типа кроссвордов или шахматных этюдов. К работе программиста оно никакого отношения не имеет. Дебилы на менеджерах зафорсили эти задачки, а потом удивляются, почему в их сраный тиньков люди не идут и вакансии висят по полгода.
Это нормально. Литкод - это же головоломки для тех, кому скучно, что-то типа кроссвордов или шахматных этюдов. К работе программиста оно никакого отношения не имеет. Дебилы на менеджерах зафорсили эти задачки, а потом удивляются, почему в их сраный тиньков люди не идут и вакансии висят по полгода.
>>06733
На работе никакой практически, на собесах - на всех.
Зачем? А потому что фаанг так делали, а мы тупо как бараны решили повторить.
На работе никакой практически, на собесах - на всех.
Зачем? А потому что фаанг так делали, а мы тупо как бараны решили повторить.
>>06739
Там главное условия хорошо понять, само решение можно сделать очень простым.
Там главное условия хорошо понять, само решение можно сделать очень простым.
39 Кб, 657x645
Решил сегодня 10 задач и сейчас наткнулся на очередную EASY задачу....
70. Climbing Stairs
Я блять в ахуе.
Ладно, думаю задача по комбинаторике, взял бектрекинг алгоритм нахуярил и оно сука не работает на больших числах ( еще бы ), при n=44 time limit exceeded. Конечно блять там же миллион комбинаций может быть. Я хз. Наверное я слишком тупой. Решения как всегда не смотрел еще. Но уверен индусы решили в 2 строки.
70. Climbing Stairs
Я блять в ахуе.
Ладно, думаю задача по комбинаторике, взял бектрекинг алгоритм нахуярил и оно сука не работает на больших числах ( еще бы ), при n=44 time limit exceeded. Конечно блять там же миллион комбинаций может быть. Я хз. Наверное я слишком тупой. Решения как всегда не смотрел еще. Но уверен индусы решили в 2 строки.
>>07354
Глянул решение, оказывается это решается через последовательность фибоначи... блять я что вам математик чтобы до этого додуматься? Тут реально нужно знать именно решение этой задачи, самому догадаться очень тяжело, еще и будучи не математиком. Там даже челы в комментах пишут со степенями в CS что не могли решить, и даже челы с мат. бэкграундом не все могут решить ... этож пиздец изи задача, лол
Глянул решение, оказывается это решается через последовательность фибоначи... блять я что вам математик чтобы до этого додуматься? Тут реально нужно знать именно решение этой задачи, самому догадаться очень тяжело, еще и будучи не математиком. Там даже челы в комментах пишут со степенями в CS что не могли решить, и даже челы с мат. бэкграундом не все могут решить ... этож пиздец изи задача, лол
>>07374
Решение алгоритмических задач это не про iq. Нарешиваешь какое-то количество задач и запоминаешь паттерны. Потом уже глядя на условия примерно представляешь что заюзать.
Решение алгоритмических задач это не про iq. Нарешиваешь какое-то количество задач и запоминаешь паттерны. Потом уже глядя на условия примерно представляешь что заюзать.
>>07374
Теперь ты понимаешь, почему все хейтят литкод на собесах. В этой задаче ты должен заучить решение, догадаться тут невозможно. Тупо тест на память, с таким же успехом можно спрашивать отрывки из Шекспира.
Теперь ты понимаешь, почему все хейтят литкод на собесах. В этой задаче ты должен заучить решение, догадаться тут невозможно. Тупо тест на память, с таким же успехом можно спрашивать отрывки из Шекспира.
Литкод всегда был и будет про математическое решение задач уровня школы-универа. На уровне "вот тебе формула, просто подставь числа, когда увидешь что-то похожее". Ну знаешь, когда тебе давали условную теорему Ролля, а почему и зачем - не обьясняли. Просто видишь знакомый паттерн, то применяй эту теорему.
Кстати, вдохновился твоей идеей и тоже решил порешать некоторые задачи и выпал с two-sum. Я не понимаю, какой сверхразум ее придумал, но отдаю должное, до решения через одинарную мапу и .containsKey() хрен когда додумался бы.
Мимо джава 3 года
Кстати, вдохновился твоей идеей и тоже решил порешать некоторые задачи и выпал с two-sum. Я не понимаю, какой сверхразум ее придумал, но отдаю должное, до решения через одинарную мапу и .containsKey() хрен когда додумался бы.
Мимо джава 3 года
>>06557 (OP)
Посмотрел. Оказывается, решал её пару лет назад, правда на петухоне. Смотрю решение и не могу понять, как пришёл к нему.
Литкод смысл дрочить только перед собеседованиями.
>задача 13. Roman to Integer с виду кажется изи...
Посмотрел. Оказывается, решал её пару лет назад, правда на петухоне. Смотрю решение и не могу понять, как пришёл к нему.
Литкод смысл дрочить только перед собеседованиями.
>>06699
Ебать ты нагородил там, задача в одну строку буквально решается:
fromRoman ← {+/⍵ׯ1*(1↓⍵,0)>⍵} (⌷∘ 1 5 10 50 100 500 1000¨'IVXLCDM' ⍳⊢)
Ебать ты нагородил там, задача в одну строку буквально решается:
fromRoman ← {+/⍵ׯ1*(1↓⍵,0)>⍵} (⌷∘ 1 5 10 50 100 500 1000¨'IVXLCDM' ⍳⊢)
>fromRoman 'XIX'
>19
>>08750
Покажи не хуйню. Сможет она потягаться в выразительности с этим старичком 60х годов?
Покажи не хуйню. Сможет она потягаться в выразительности с этим старичком 60х годов?
>>08780
while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(
$m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12($_%16
-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C",$_)[20]&48){$h
=5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$
d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^
$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q8^$q<<6))<<9,$_=$t[$_]^
(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C",@a}';s/x/pack+/g
while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(
$m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12($_%16
-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C",$_)[20]&48){$h
=5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$
d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^
$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q8^$q<<6))<<9,$_=$t[$_]^
(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C",@a}';s/x/pack+/g
>>08795
И что этот кусок должен должен был продемонстрировать? Что код на перле, как и на любом другом языке, можно обфусцировать?
И что этот кусок должен должен был продемонстрировать? Что код на перле, как и на любом другом языке, можно обфусцировать?
>>08803
Что этот код выглядит примерно так же как и твоё говно на APL которое никто не поймет
Что этот код выглядит примерно так же как и твоё говно на APL которое никто не поймет
>римская сс в десятичную
В чём сложность задачи? Нихуя не понял.
>>08831
Хм... а с чего ты решил, что незнакомый язык должен быть тебе понятен? Ты у мамы особенный? Сеньор-смуззихлёб, который прохавал айти с самого низа: от жиквери до реакта?
Не нужно быть семи пядей во лбу, чтобы просто увидеть, что APL ебёт. А кого заинтересует, как именно и почему, те разберутся. Язык другой, но не такой сложный, каким кажется.
Хм... а с чего ты решил, что незнакомый язык должен быть тебе понятен? Ты у мамы особенный? Сеньор-смуззихлёб, который прохавал айти с самого низа: от жиквери до реакта?
>никто не поймет
Не нужно быть семи пядей во лбу, чтобы просто увидеть, что APL ебёт. А кого заинтересует, как именно и почему, те разберутся. Язык другой, но не такой сложный, каким кажется.
>>07354
>>07374
Она решается очень просто, по индукции.
Допустим у тебя есть лесенки до $n$ ступеньки и ты знаешь для каждой от $1$ до $n$ сколько способов есть добраться до неё.
Допустим для $n$-ной есть $k$ способов. Добавим теперь одну ступеньку, всего $n+1$ ступенек. Добраться до $n$-ной $k$ способов, и потом остаётся один шаг. Получаем
$k_{n}$ способов + ?
Мы можем добраться до $n-1$ ступеньки и сделать 2 шага, окажемся на $n+1$-ступеньке.
$k_{n}+k_{n-1}+?$
ниже мы спускаться не можем, потому что при любом шаге мы попадем на уже известную ступеньку, а этот способ у нас уже записан.
Тогда $k_{n+1}=k_{n}+k_{n-1}$
то есть сумма способов для $n$-ной лесенке равна сумме способов двух предыдущих.
работаю на дноработах, последняя была дворником
>>07374
Она решается очень просто, по индукции.
Допустим у тебя есть лесенки до $n$ ступеньки и ты знаешь для каждой от $1$ до $n$ сколько способов есть добраться до неё.
Допустим для $n$-ной есть $k$ способов. Добавим теперь одну ступеньку, всего $n+1$ ступенек. Добраться до $n$-ной $k$ способов, и потом остаётся один шаг. Получаем
$k_{n}$ способов + ?
Мы можем добраться до $n-1$ ступеньки и сделать 2 шага, окажемся на $n+1$-ступеньке.
$k_{n}+k_{n-1}+?$
ниже мы спускаться не можем, потому что при любом шаге мы попадем на уже известную ступеньку, а этот способ у нас уже записан.
Тогда $k_{n+1}=k_{n}+k_{n-1}$
то есть сумма способов для $n$-ной лесенке равна сумме способов двух предыдущих.
работаю на дноработах, последняя была дворником
>>10040
ебучая макака latex только к /math прикрутила
ебучая макака latex только к /math прикрутила
>>06569
ПРОСТО сделай таблицу всех доступных знаков, а потом циклом отрезай от строки первый попавшийся substring > -1 (от большего знака к меньшему) и плюсуюй в аккумулятор пока строка пустой не станет
мимо-олимпиадник по квадробингу
ПРОСТО сделай таблицу всех доступных знаков, а потом циклом отрезай от строки первый попавшийся substring > -1 (от большего знака к меньшему) и плюсуюй в аккумулятор пока строка пустой не станет
мимо-олимпиадник по квадробингу
Обновить тред