Coding assignment

User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5665
Joined: 15 Aug 2008 00:52

Re: Coding assignment

Post by Alexander Troyansky »

3DD wrote: 17 Feb 2021 20:28 Еще coding assignment: calculator with roman numbers.

Input (string): "(XV+MCD)*III-IV*(V-I)"
Output: decimal number
(Operators: +,-,*,/)

Take home task, 2 hours

Что в моей имплементации (JS) было:
1. Validate input (if only roman letters and operators, no decimals or other chars)
2. Validate if brackets are balanced, no situations like: (V+III*X
3. Create converter for romans-to-decimals
4. Break string into numbers and operators
5. Convert roman numbers into decimals using converter at step 3
6. Execute eval(..)

Step 6 could be implemented as fully custom calculator:
1. extract bracket contents, do operation inside them (recursion for nested brackets)
2. execute * and / operations
3. execute the remaining operations

А как бы вы решали и за какое время?
За два часа эт круто. Скока строчек получилось (assuming no COBOL style implementation)?
I would hope that a wise white man with the richness of his experiences would more often than not reach a better conclusion than a latina female who hasn't lived that life
User avatar
Big W
Уже с Приветом
Posts: 920
Joined: 22 Jun 2007 20:41
Location: Santa Rosita

Re: Coding assignment

Post by Big W »

3DD wrote: 17 Feb 2021 20:28 Еще coding assignment: calculator with roman numbers.

Input (string): "(XV+MCD)*III-IV*(V-I)"
Output: decimal number
(Operators: +,-,*,/)

Take home task, 2 hours

Что в моей имплементации (JS) было:
1. Validate input (if only roman letters and operators, no decimals or other chars)
...
3. Create converter for romans-to-decimals
...
Насколько строго надо validate input? Надо ли на числа типа "XXXX" и "IXIX" ругаться, что not valid number или можно конвертировать в 40 и 18 соответственно?
3DD
Уже с Приветом
Posts: 7872
Joined: 05 Aug 2003 21:39
Location: CA

Re: Coding assignment

Post by 3DD »

Big W wrote: 18 Feb 2021 01:26
3DD wrote: 17 Feb 2021 20:28 Еще coding assignment: calculator with roman numbers.

Input (string): "(XV+MCD)*III-IV*(V-I)"
Output: decimal number
(Operators: +,-,*,/)

Take home task, 2 hours

Что в моей имплементации (JS) было:
1. Validate input (if only roman letters and operators, no decimals or other chars)
...
3. Create converter for romans-to-decimals
...
Насколько строго надо validate input? Надо ли на числа типа "XXXX" и "IXIX" ругаться, что not valid number или можно конвертировать в 40 и 18 соответственно?
До такой степени валидировать не надо. Предполагается что они in valid format.

Следующего куска кода достаточно (да, в случае "XXXX" и "IXIX" это будет 40 и 18)

Code: Select all

function roman_converter_to_int(str) {
    if(str === null) return -1;

    let numRes = utilMapping(str.charAt(0));
    let pre = 0;
    let currChar = 0;

    for(let i = 1; i < str.length; i++){
        currChar = utilMapping(str.charAt(i));console.log()
        pre = utilMapping(str.charAt(i-1));
        if(currChar <= pre){
            numRes += currChar;
        } else {
            numRes = numRes - pre*2 + currChar;
        }
    }
    return numRes;
}

/* Validate string if braсkets (if any) are balanced */
function ifInputValid(str) {
    if(!str || str ==='') {
        return false;
    }
    const arr = str.split("");
    let stack = [];

    arr.forEach((value, key)=>{
        switch(value) {
            case "(":
                stack.push(value);
            break;
            case ")":
                if(stack.length>0 && stack[stack.length-1]==="(") {
                    stack.pop();
                } else {
                    stack.push(value);
                }
            break;
            default:
                break;
        }
    });
    
    if(stack.length>0) {
        return false;
    }
    return true; 
}

/* [UTIL] Mapping: roman numers with decimals */
function utilMapping (char) {
    let res = "";
    switch(char.toLowerCase()) {
        case 'i':
            res = 1;
        break;
        case 'v':
            res = 5;
        break;
        case 'x':
            res = 10;
        break; 
        case 'l':
            res = 50;
        break;
        case 'c':
            res = 100;
        break; 
        case 'd':
            res = 500;
        break; 
        case 'm':
            res = 1000;
        break; 
        default:
            res = -1;
        break;
    }
    return res;
}

console.log(roman_converter_to_int("ixix"))
tessob
Уже с Приветом
Posts: 545
Joined: 07 Jan 2016 13:04

Re: Coding assignment

Post by tessob »

примерно 45 минут на жабе:

Code: Select all

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
import java.util.regex.MatchResult;
import java.util.regex.Pattern;

public class Calculator {

    private static final ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");

    public Object calculate(String input) throws ScriptException {
        String normalized = Pattern
                .compile("[IVXLCDM]+")
                .matcher(input)
                .replaceAll(this::normalize);
        return engine.eval(normalized);
    }

    private String normalize(MatchResult matchResult) {
        String value = matchResult.group();
        int number = romanToInt(value);
        return String.valueOf(number);
    }

    int romanToInt(String input) {
        char[] arr = input.toCharArray();
        int sum = toArabic(arr[0]);
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > arr[i - 1])
                sum += toArabic(arr[i]) - 2 * toArabic(arr[i - 1]);
            else
                sum += toArabic(arr[i]);
        }
        return sum;
    }

    int toArabic(char latter) {
        switch (latter) {
            case 'I':
                return 1;
            case 'V':
                return 5;
            case 'X':
                return 10;
            case 'L':
                return 50;
            case 'C':
                return 100;
            case 'D':
                return 500;
            case 'M':
                return 1000;
            default:
                throw new IllegalArgumentException("WTF: " + letter);
        }
    }

}
User avatar
Krys-Krys
Уже с Приветом
Posts: 12119
Joined: 15 Feb 2010 10:32
Location: Pacifica, CA

Re: Coding assignment

Post by Krys-Krys »

Надо же, совместили 2 литкод задачи в одну. На литкоде есть задачи на конвертацию в и из римских чисел, и так же калькулятор. Задачи это не сложные, но очень муторные обе, в калькуляторе можно стэк использовать, т к у умножения и деления приоритет.
3DD
Уже с Приветом
Posts: 7872
Joined: 05 Aug 2003 21:39
Location: CA

Re: Coding assignment

Post by 3DD »

tessob wrote: 18 Feb 2021 05:50 примерно 45 минут на жабе:

Code: Select all


       ... return engine.eval(normalized);
  
45 минут - отлично! Походу eval - это типа у интервьюирующих был вроде brute force solution.

Основной интерес представляла имплементация самого калькулятора.

Krys-Krys :hat: правильно отметила, что это 2 задачи в одном задании
tessob
Уже с Приветом
Posts: 545
Joined: 07 Jan 2016 13:04

Re: Coding assignment

Post by tessob »

А компилятор тоже свой нужен? ))
3DD
Уже с Приветом
Posts: 7872
Joined: 05 Aug 2003 21:39
Location: CA

Re: Coding assignment

Post by 3DD »

tessob wrote: 18 Feb 2021 19:06 А компилятор тоже свой нужен? ))
+1
Эта контора - редкостные мудаки :)
User avatar
Vladimir Kr.
Уже с Приветом
Posts: 539
Joined: 24 Mar 2004 07:31
Location: Krasnoyrsk -> -> Chicago

Re: Coding assignment

Post by Vladimir Kr. »

Вопрос - указать на ошибки в описании, это хорошо, или плохо?

> (Operators: +,-,*,/)

в условии задачи операторы скобочек не указаны, может их игнорировать надо?
моя родина СССР!
User avatar
Krys-Krys
Уже с Приветом
Posts: 12119
Joined: 15 Feb 2010 10:32
Location: Pacifica, CA

Re: Coding assignment

Post by Krys-Krys »

Для калькулятора если числа десятичные и +- можно складывать в стэк по мере парсинга строки и чтения числа или знака. Когда след число готово - проверять что на пике стэка, если умножение или деление - то из стэка снимать 2 топовых элемента (число и операцию), выполнять эту операцию над числом из стэка и текущим числом и результат класть назад. Если не умрожение или деление - просто класть в стэк. Под конец в стэке будут числа и +- операции, пройтись по нему и вот результат. Из ньюансов - числа могут быть как меньше 10, так и больше, а это значит что нужно считывать эти числа правильно, например можно сделать 2 поинтера, главные для строки и 2й что считает текущее число, а когда считает - главный принтер сдвигать в позицию следующую за ним (или конец строки), при желание такой калькулятор можно успеть написать за 20 мин. Более сложная версия этой задачи (и более муторная) - это когда еще и скобочки есть. Вообще это классическая задача на стэк. Есть очень много похожих известных задач, например проверить насколько валидна строка с разными видами открвающихся и закрывающихся скобок, а если не валидна - выкинуть лишние символы, более сложная версия это вернуть все возможные вариации валидной строки с выкинутыми скобочками.
3DD
Уже с Приветом
Posts: 7872
Joined: 05 Aug 2003 21:39
Location: CA

Re: Coding assignment

Post by 3DD »

Krys-Krys wrote: 18 Feb 2021 20:28 Есть очень много похожих известных задач, например проверить насколько валидна строка с разными видами открвающихся и закрывающихся скобок
просто оставлю это здесь, если кому надо:

Code: Select all

/**
Initialize a stack S.
Process each bracket of the expression one at a time.
If we encounter an opening bracket, we simply push it onto the stack. 
This means we will process it later, let us simply move onto the sub-expression ahead.
If we encounter a closing bracket, then we check the element on top of the stack. 
If the element at the top of the stack is an opening bracket of the same type, 
then we pop it off the stack and continue processing. Else, this implies an invalid expression.
In the end, if we are left with a stack still having elements, then this implies an invalid expression.
 */

function isValid(s) {
    if (s.length % 2 !== 0) return false
    
    let stack = []
    let matches = {
        "}": "{",
        "]": "[",
        ")": "(",
    };

    for (let i = 0; i < s.length; i++) {
           if (typeof stack[stack.length - 1] != 'undefined' && 
               stack[stack.length - 1] == matches[s.charAt(i)]) {
               stack.pop();
           } else {
             stack.push(s.charAt(i))
           }
   
    }
    return stack.length == 0;
};


console.log(isValid('{}[{}]'));
User avatar
Krys-Krys
Уже с Приветом
Posts: 12119
Joined: 15 Feb 2010 10:32
Location: Pacifica, CA

Re: Coding assignment

Post by Krys-Krys »

Vladimir Kr. wrote: 18 Feb 2021 19:46 Вопрос - указать на ошибки в описании, это хорошо, или плохо?

> (Operators: +,-,*,/)

в условии задачи операторы скобочек не указаны, может их игнорировать надо?
Если это во время интервью просят написать то можно там же и спросить у собеседующего про скобочки и проч. Если прислали по емейлу - можно выслать список вопросов перед тем как писать решение.
3DD
Уже с Приветом
Posts: 7872
Joined: 05 Aug 2003 21:39
Location: CA

Re: Coding assignment

Post by 3DD »

Krys-Krys wrote: 18 Feb 2021 20:39
Vladimir Kr. wrote: 18 Feb 2021 19:46 Вопрос - указать на ошибки в описании, это хорошо, или плохо?

> (Operators: +,-,*,/)

в условии задачи операторы скобочек не указаны, может их игнорировать надо?
Если это во время интервью просят написать то можно там же и спросить у собеседующего про скобочки и проч. Если прислали по емейлу - можно выслать список вопросов перед тем как писать решение.
В моем случае - это линк на codepad и там кратко условия задачи. Задавать вопросы не кому. И счетчик по времени: 120 минут, время пошло.
Last edited by 3DD on 18 Feb 2021 20:41, edited 1 time in total.
User avatar
Krys-Krys
Уже с Приветом
Posts: 12119
Joined: 15 Feb 2010 10:32
Location: Pacifica, CA

Re: Coding assignment

Post by Krys-Krys »

3DD wrote: 18 Feb 2021 20:40
Krys-Krys wrote: 18 Feb 2021 20:39
Vladimir Kr. wrote: 18 Feb 2021 19:46 Вопрос - указать на ошибки в описании, это хорошо, или плохо?

> (Operators: +,-,*,/)

в условии задачи операторы скобочек не указаны, может их игнорировать надо?
Если это во время интервью просят написать то можно там же и спросить у собеседующего про скобочки и проч. Если прислали по емейлу - можно выслать список вопросов перед тем как писать решение.
В моем случае - это линк на codepad и там кратко условия задачи. И счетчик по времени: 120 минут, время пошло.
Тогда можно предположить что скобочек не будет, раз про них не упоминается в условие.
3DD
Уже с Приветом
Posts: 7872
Joined: 05 Aug 2003 21:39
Location: CA

Re: Coding assignment

Post by 3DD »

Krys-Krys wrote: 18 Feb 2021 20:41
3DD wrote: 18 Feb 2021 20:40
Krys-Krys wrote: 18 Feb 2021 20:39
Vladimir Kr. wrote: 18 Feb 2021 19:46 Вопрос - указать на ошибки в описании, это хорошо, или плохо?

> (Operators: +,-,*,/)

в условии задачи операторы скобочек не указаны, может их игнорировать надо?
Если это во время интервью просят написать то можно там же и спросить у собеседующего про скобочки и проч. Если прислали по емейлу - можно выслать список вопросов перед тем как писать решение.
В моем случае - это линк на codepad и там кратко условия задачи. И счетчик по времени: 120 минут, время пошло.
Тогда можно предположить что скобочек не будет, раз про них не упоминается в условие.
Было про скобки вскользь. Типа input может быть и таким: (V+I)*III
Про то, что скобки могут быть невалидными в описании не было. Уточнить не у кого. Можно предположить и так и эдак.
User avatar
caltrain
Уже с Приветом
Posts: 658
Joined: 27 Feb 2013 10:51
Location: SFBA

Re: Coding assignment

Post by caltrain »

3DD wrote: 18 Feb 2021 20:45 Было про скобки вскользь. Типа input может быть и таким: (V+I)*III
Про то, что скобки могут быть невалидными в описании не было. Уточнить не у кого. Можно предположить и так и эдак.
Получается, что и операторы тоже надо было проверять на предмет креатива вроде ***** ---- //// /|\

По такой логике можно было сразу реализовывать стек калькулятора
и отлавливать, что на вход за числом приходит неожиданно открывающая скобка 13(, или за оператором другой оператор ** или закрывающая скобка +), или несбалансированная скобка, или стек остаётся не пустым, то сами решаете, что делать (exception, null, etc)

а вообще с валидацией это даже три задачи, потому что обычно оговаривают что ввод корректный, а сбалансированные скобки дают как отдельное задание

муторненько всё это вместе.
niche
Новичок
Posts: 85
Joined: 17 Mar 2021 20:49

Re: Coding assignment

Post by niche »

Кодинг assignment знак плохого работодателя. Лучве сразу разворачиваться. Они оплачивают потраченное время?
Надо счета им присылать за это. Особенно интересно когда они уже знают какого идуса наймут но для проформы ставят эти задачки.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Coding assignment

Post by Сабина »

niche wrote: 22 Mar 2021 14:26 Кодинг assignment знак плохого работодателя. Лучве сразу разворачиваться. Они оплачивают потраченное время?
Надо счета им присылать за это. Особенно интересно когда они уже знают какого идуса наймут но для проформы ставят эти задачки.
Не скажите. Все очень зависит от менеджера и команды. Ну и собственно где вы сами находитесь в плане карьеры, компенсации и проч по отношению к перспективной компании и должности. Я на текущем месте сделала такой coding assignment , помню что тоже в глубине души «ворчала» что нафига мне надо в выходной стока кодировать. Но в итоге менеджеру понравилось, позвали , там все прошла и получила офер. Если сравнивать ТС до этой работы и сейчас, почти в два раза. Так что очень даже стоило.
https://www.youtube.com/watch?v=wOwblaKmyVw
niche
Новичок
Posts: 85
Joined: 17 Mar 2021 20:49

Re: Coding assignment

Post by niche »

Сабина wrote: 22 Mar 2021 14:34
niche wrote: 22 Mar 2021 14:26 Кодинг assignment знак плохого работодателя. Лучве сразу разворачиваться. Они оплачивают потраченное время?
Надо счета им присылать за это. Особенно интересно когда они уже знают какого идуса наймут но для проформы ставят эти задачки.
Не скажите. Все очень зависит от менеджера и команды. Ну и собственно где вы сами находитесь в плане карьеры, компенсации и проч по отношению к перспективной компании и должности. Я на текущем месте сделала такой coding assignment , помню что тоже в глубине души «ворчала» что нафига мне надо в выходной стока кодировать. Но в итоге менеджеру понравилось, позвали , там все прошла и получила офер. Если сравнивать ТС до этой работы и сейчас, почти в два раза. Так что очень даже стоило.
Конечно есть какие то случаи когда стоит. Я имею в виду в среднем. Особенно если у человека есть какой то портфолио кода онлайн/на гитхабе, эти их кодинг задачки считаю издевательством. Они не доверяют людям.. у меня нет оснований доверять им. Пусть оплачивают врема кодинга по рыночной цене.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Coding assignment

Post by Сабина »

Тут ещё есть такой момент что иногда хотят понять какие то конкретные coding skills, а на вашем гитхаб нет.
Меня так раз попросили на JavaRx сделать assignment. Тоже кстати вылилось в oнсайт и офер, но я не взяла.
По мне такое лучше, чем overrated leetcode etc
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
valchkou
Уже с Приветом
Posts: 4185
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Coding assignment

Post by valchkou »

niche wrote: 22 Mar 2021 14:42 Конечно есть какие то случаи когда стоит. Я имею в виду в среднем. Особенно если у человека есть какой то портфолио кода онлайн/на гитхабе, эти их кодинг задачки считаю издевательством. Они не доверяют людям.. у меня нет оснований доверять им. Пусть оплачивают врема кодинга по рыночной цене.
Вы, товарищ, либо в америке недавно, либо вы не в америке вообще.
Кодинг задачки тут стали стандартом, хотим мы этого или нет. Я лично сам это не одобряю, но против системы не попрешь.
Никакого отношения к тому что говорите вы это не имеет. В большинстве случаев отбор честный и справедливый.
Не исключаю, что могут быть какие нибудь единичные рога и копыта, где все это часть ширмы. Но я лично с таким ни разу не сталкивался.
В чужом гитхаб коде тоже мало кто хочет ковыряться и тратить свое время. Если только ваш проект не на слуху у широких масс.
niche
Новичок
Posts: 85
Joined: 17 Mar 2021 20:49

Re: Coding assignment

Post by niche »

Сабина wrote: 22 Mar 2021 15:24 Тут ещё есть такой момент что иногда хотят понять какие то конкретные coding skills, а на вашем гитхаб нет.
Меня так раз попросили на JavaRx сделать assignment. Тоже кстати вылилось в oнсайт и офер, но я не взяла.
По мне такое лучше, чем overrated leetcode etc
Ну на гитхаб то все не поставишь. Что то ведь пропраетори, свое или из прошлой компании... На всех кода не напасешься: если им нужно какая то узкая технология пусть срашивают по телефону, смотрят в резюме, ну или пусть дают время на изучение. Если им нужен узкий спец и нет времени на обучение, то дожно быть понятно из резюме/разговора есть ли опыт. Кодинг задачки однако в основном общие, школьного типа - решение которых легко можно купить, кстати, так что они ничего не доказывают - и если они не доверяют людям до такой степени то у меня вопрос хочу ли иметь дело с такой атмосферой. К сожалению в этой профессии параноидальное недоверие со стороны компаний это норма (но при этом всегда успешно нанимаются самые тупейшие индусы), у меня не было положительного опыта с такими компаниями, хотя и довелось проходить их задачки (больше не буду связываться)
niche
Новичок
Posts: 85
Joined: 17 Mar 2021 20:49

Re: Coding assignment

Post by niche »

valchkou wrote: 22 Mar 2021 15:31
niche wrote: 22 Mar 2021 14:42 Конечно есть какие то случаи когда стоит. Я имею в виду в среднем. Особенно если у человека есть какой то портфолио кода онлайн/на гитхабе, эти их кодинг задачки считаю издевательством. Они не доверяют людям.. у меня нет оснований доверять им. Пусть оплачивают врема кодинга по рыночной цене.
Вы, товарищ, либо в америке недавно, либо вы не в америке вообще.
Кодинг задачки тут стали стандартом, хотим мы этого или нет. Я лично сам это не одобряю, но против системы не попрешь.
Никакого отношения к тому что говорите вы это не имеет. В большинстве случаев отбор честный и справедливый.
Не исключаю, что могут быть какие нибудь единичные рога и копыта, где все это часть ширмы. Но я лично с таким ни разу не сталкивался.
В чужом гитхаб коде тоже мало кто хочет ковыряться и тратить свое время. Если только ваш проект не на слуху у широких масс.
Думаю подольше вашего, десятки лет. А родители мои и того дольше. Вы еще наверно в памперсах ходили.
Представьте у меня даже образование по профилю местное.

Кодинг задачки не являются никаким стандартом от слова совсем. И если кто то пытается их проталкивать то этому надо активно сопротивляться.

Отбор честный...вот повеселили, то то индюки заменют всех в компаниях потихоньку.
Мне товарищ доводилось нанимать людей в большой достаточно известой компании в силиконовой долине, и знаю какой отбор честный, сказок этих не надо про серого бычка.
Шлют индюков своих, из них и выбирай. А другие задачку не сделали.

Им в гитхабе нет времени ковыраться? А у меня нет времени заниматься их бредовыми задачками (которые как правило не будут иметь никакого отношения к реальной работе). Нормальные компании их не требуют.
User avatar
valchkou
Уже с Приветом
Posts: 4185
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Coding assignment

Post by valchkou »

niche wrote: 22 Mar 2021 15:37
valchkou wrote: 22 Mar 2021 15:31
niche wrote: 22 Mar 2021 14:42 Конечно есть какие то случаи когда стоит. Я имею в виду в среднем. Особенно если у человека есть какой то портфолио кода онлайн/на гитхабе, эти их кодинг задачки считаю издевательством. Они не доверяют людям.. у меня нет оснований доверять им. Пусть оплачивают врема кодинга по рыночной цене.
Вы, товарищ, либо в америке недавно, либо вы не в америке вообще.
Кодинг задачки тут стали стандартом, хотим мы этого или нет. Я лично сам это не одобряю, но против системы не попрешь.
Никакого отношения к тому что говорите вы это не имеет. В большинстве случаев отбор честный и справедливый.
Не исключаю, что могут быть какие нибудь единичные рога и копыта, где все это часть ширмы. Но я лично с таким ни разу не сталкивался.
В чужом гитхаб коде тоже мало кто хочет ковыряться и тратить свое время. Если только ваш проект не на слуху у широких масс.
Думаю подольше вашего, десятки лет. А родители мои и того дольше. Вы еще наверно в памперсах ходили.
Представьте у меня даже образование по профилю местное.

Кодинг задачки не являются никаким стандартом от слова совсем. И если кто то пытается их проталкивать то этому надо активно сопротивляться.

Отбор честный...вот повеселили, то то индюки заменют всех в компаниях потихоньку.
Мне товарищ доводилось нанимать людей в большой достаточно известой компании в силиконовой долине, и знаю какой отбор честный, сказок этих не надо про серого бычка.
Шлют индюков своих, из них и выбирай. А другие задачку не сделали.

Им в гитхабе нет времени ковыраться? А у меня нет времени заниматься их бредовыми задачками (которые как правило не будут иметь никакого отношения к реальной работе). Нормальные компании их не требуют.
остается вам посочувствовать. Про памперсы лучше не нужно, это больная тема для меня :sadcry:
Я то подумал это вас не берут, а оказывается это вы не берете. А задачки кто выдумывает вендор-посредник? или вы сами?
Вы можете увидеть код кандидатов?
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Coding assignment

Post by Сабина »

Krys-Krys wrote: 18 Feb 2021 10:54 Надо же, совместили 2 литкод задачи в одну. На литкоде есть задачи на конвертацию в и из римских чисел, и так же калькулятор. Задачи это не сложные, но очень муторные обе, в калькуляторе можно стэк использовать, т к у умножения и деления приоритет.
В книге Gayle есть прохожая задача
https://www.youtube.com/watch?v=wOwblaKmyVw

Return to “Работа и Карьера в IT”