|
|
|
Помогите понять задание.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Сразу оговорюсь, что я НЕ прошу решения задания. Мне нужно понять суть. Вчитывался много раз и от условия какая то двойственность. Пробовал связаться и уточнить моменты у постановщика задачи, но он молчит... Эта "задачка" не новая, и возможно "стара как мир", и наверняка, какие-то варианты её решения можно найти на просторах сети. Но это не мой метод - решить хочу самостоятельно. Для наглядности, пункты задания я пронумерую, чтобы было удобнее ссылаться на непонятные места. Вот условие: Реализовать интерфейс механизма "умной" сортировки. Код: java 1. 2. 3. Сортирует переданный список записей (каждая запись - набор колонок) таблицы по указанной колонке по следующим правилам: 1) в колонке могут быть null и пустые значения - строки с null-значениями должны быть первыми, затем строки с пустым значением, затем все остальные. 2) строка бьется на подстроки следующим образом: выделяем непрерывные максимальные фрагменты строки, состоящие только из цифр, и считаем набором подстрок эти фрагменты и все оставшиеся от такого разбиения фрагменты строки 3) при сравнении строк осуществляется последовательное сравнение их подстрок до первого несовпадения, если обе подстроки состоят из цифр - то при сравнении они интерпретируются как целые числа (вначале должно идти меньшее число), в противном случае - как строки. 4) сортировка должна быть устойчива к исходной сортировке списка - т.е., если строки (в контексте указанных правил сравнения) неразличимы, то сортировка не должна менять их местами. rows список записей таблицы (например, результат sql select), которые нужно отсортировать по указанной колонке columnIndex индекс колонки, по которой нужно провести сортировку МОИ КОММЕНТАРИИ: Пункт 1) абсолютно понятен - при любой сортировке сначала идут null, затем пустышки, потом всё остальное (это в принципе логично) Пункт 2) для меня не совсем ясен: Что имеется в виду под "строкой"? - Это вся запись (т.е. набор колонок) или же это значение одного поля записи по которому надо сортировать? Далее пункт 2) гласит: "выделяем непрерывные максимальные фрагменты строки, состоящие только из цифр" Что значит "максимальные"? Если будет такая строка: "12, ABCD, 3455667, 3A, DEF" - Я должен выделить "3455667" а "12" куда? Идет лесом? Короче пункты 2 и 3 меня вводят в ступор. Если кто-то сможет показать набор строк под этот алгоритм, буду благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2016, 20:42 |
|
||
|
Помогите понять задание.
|
|||
|---|---|---|---|
|
#18+
MAULER, Напишите свою реализацию, отправьте заказчику с вопросами, исправьте если нужно. Как-то так. С уважением, Валентин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 09:30 |
|
||
|
Помогите понять задание.
|
|||
|---|---|---|---|
|
#18+
Насколько я понимаю этот аргумент Код: java 1. семантически являет собой уже готовую таблицу. Что там выделять - непонятно. В то-же время пункт (2) и (3) этому противоречат и вводят новые смысловые надстройки над некими "строками" и "подстроками" и эмулируют свои таблицы. И техно-писатель который писал это задание был неопытен и запутал нас еще больше. Вобщем нужен диалог с тем кто это написал. Лучше всего на языке TDD и модульных тестов. Тоесть написать утверждение и с просить автора - ЭТО ИМЕЛОСЬ в виду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 09:54 |
|
||
|
Помогите понять задание.
|
|||
|---|---|---|---|
|
#18+
Пообщался на другом форуме с человеком, который мне разъяснил суть задания. Признаться честно, оно понимается НЕ однозначно, и даже коряво. И если бы не помощь, то понять суть очень не просто. Суть в том, чтобы "распарсить" на отдельные подстроки значение поля записи, индекс которого указан в качестве входного параметра. К примеру есть запись, значение одного из полей которой равно: 111хх25dddd03. В результате бьём его так: ["111", "xx", "25", "dddd", "03"] Бьем поле второй записи : Исходное значение которого такое: bda777tt28d08fff После парсинга имеем массив подстрок: ["bda", "777", "tt", "28", "d", "08", "fff"] Теперь их сравниваем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 11:03 |
|
||
|
Помогите понять задание.
|
|||
|---|---|---|---|
|
#18+
MAULERКороче пункты 2 и 3 меня вводят в ступор. Если кто-то сможет показать набор строк под этот алгоритм, буду благодарен. В принципе задача называется в простонародье - "как windows файлы сортирует". (Хотя там почти все настраиваемо и на самом деле Windows Explorer это делает не совсем так, как должен был бы согласно документации, но так уж повелось :) ). Прин6цип сравнения прост как две копейки. Просто представьте себе что строки это имена файлов. Итак берем строку из входного списка, например "aЯ23,5х3". Пункт 2 заставляет разбить ее на упорядоченное множество элементов (состоящее из null (если вся строка такова),пустой строки (если вся строка такова), подстрок или чисел (целочисленных)) (и отдельного индекса в исходном множестве чтоб удовлетворить п.4). Получаем что-то типа List<Comparable> ll = {"аЯ",Integer.valueOf(23),",",Integer.valueOf(5),"x",Integer.valueOf(3)} Ну и дальше сравниваем первые элементы двух множеств (если оба null - равенство, иначе если один null неравенство, иначе если обе пустые равенство и т.д) Пробегаем до неравенства или окончания множеств (если что-то осталось в одном из подмножеств неравенство). Если после сравнения равенств все еще равенство - то по сохраненному id из оригинального списка. Ну, вкратце, компаратор готов. Как отсортировать при наличии компаратора - см Гугл. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 11:24 |
|
||
|
Помогите понять задание.
|
|||
|---|---|---|---|
|
#18+
я такие задачки во сне делаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 12:27 |
|
||
|
Помогите понять задание.
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, У меня вот эта запись не проходит: Получаем что-то типа List<Comparable> ll ={"аЯ",Integer.valueOf(23),",",Integer.valueOf(5),"x",Integer.valueOf(3)} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 12:34 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39296164&tid=2123793]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
57ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 343ms |

| 0 / 0 |
