/TestTask

Тестовое задание в компанию

Primary LanguageJava

TestTask

Задача

На вход подаётся csv-файл из N строк и M столбцов. Значения разделены точкой с запятой. В ячейках либо вещественные числа, либо формулы. Формулы могут содержать четыре математические операции: +, -, * и /, а также числа и/или номера ячеек, по аналогии с формулами в Excel.

Например, ячейки могут быть следующими:

  1. 123
  2. 7.55
  3. 3+7
  4. 22*3-10
  5. А1*20+А2/А3

Нужно прочитать указанный файл и на выходе получить новый csv-файл, где все формулы заменены на посчитанный результат. Или, если это невозможно, написать причину ошибки.

Например, если взять файл 2 на 2.

Вход:

  • 7;A1-1
  • A1+B1;A2-1

Выход:

  • 7;6
  • 13;12

Замечания о решении

Чтоб не писать свой Excel на коленке было принято несколько упрощений:

  1. Любая ячейка содержит арифметическое выражение или ссылку на арифметическое выражение. (Нет ссылок на ячейки со ссылками внутри)
  2. Таблица конечна в ширину. Диапазон A-Z
  3. На решение ушло ~10 часов.