Я веду мониторинг оценок ученика на портале образования.
Со страницы успеваемости можно получать оценки ученика в виде сплошной строки, скажем, "5553525435"
Насколько я знаю, портал не даёт учителю возможности исправлять оценки, что упрощает мою задачу. Тем не менее, оценка может быть выставлена "задним числом", то есть попасть в середину или начало имеющейся строки оценок.
Например (было-стало)
5553525435
55535254435
Вопрос - как выявить "вставленную" оценку. К сожалению, количество изменений за раз не ограничено. Может появиться несколько оценок, проставленных в разные дни - единым пакетом.
Как определить, какие оценки появились новые (ну, и затем узнать позицию, в которой произошло изменение).
Заранее благодарен.
Писать буду на питоне, но в принципе, язык не важен.
Как вариант идти по длинному массиву вычитая одинаковые оценки из меньшего массива.Так до тех пор пока сумма меньшего массива не будет равна 0,вы узнаете оценки которые были добавлены,но позиция в данном варианте будет неточная при одинаковых оценках..Допустим при
555555 изменении в
555555555
вы никогда не узнаете в какое место было добавлена оценка(может одна в начало,одна в середину).Так что либо формат исходных данных менять,либо не брать точное место изменения
Хммм....
Супер. Странно, что я сам не догадался.
Выносим из длинной строки символы, если они отличаются от исходной, попутно запоминая, в каком месте происходит "вынос".
В случае, если все оценки сплошняком идут одинаковые, действительно, информации о положении новой оценки не будет.
А если разные - то и такая мета0инфа появится.
Павел Тананыхин: позиции тоже можно. Но хочу начать с простой версии, где оценки сплошняком (строкой). Потом уже разобрать и табличный вывод. Портал куриными ногами сделан, поэтому все как-то не очень пригодно для механизированной обработки.