Нахождение кратчайшего уникального длины префикса с помощью карты / уменьшить - PullRequest
0 голосов
/ 02 апреля 2011

У меня есть список строк (из документов в CouchDB).

Я хочу найти минимальную длину префикса, чтобы все укороченные строки (начиная с первых символов LEN) были уникальными.

Например:

  • ААББ
  • AABC
  • ABCD

должно дать: LEN - три.

Можно ли записать это как функцию отображения / уменьшения?

1 Ответ

0 голосов
/ 03 апреля 2011

Делая это методом грубой силы:

MAP: создать для каждой входной записи «ABCDE» записи с помощью клавиш - "А" - "АБ" - "Азбука" - "ABCD" - "ABCDE"

УМЕНЬШИТЬ:

  • ЕСЛИ у вас есть 1 значение в выводе итератора: "длина (ключ)" "истина"
  • Если в выводе итератора содержится более одного значения 1: "length (key)" "false"

MAP: Identity Mapper

REDUCE: вывести «true», если все входные значения верны. В противном случае выведите false (или ничего);

Это должно привести к истине для всех "уникальных" длин

...