Вопросы с тегом «strings»

Вопросы о последовательностях символов, их наборах и их свойствах, а также использовании.

41
Эффективные структуры данных для построения быстрой проверки орфографии

Я пытаюсь написать проверку орфографии, которая должна работать с довольно большим словарем. Я действительно хочу, чтобы эффективный способ индексирования данных моего словаря использовался с использованием расстояния Дамерау-Левенштейна, чтобы определить, какие слова наиболее близки к слову с...

31
Нахождение интересных анаграмм

Скажем, что и b 1 b 2 … b n - две строки одинаковой длины. Anagramming из двух строк является взаимно однозначное отображение р : [ 1 ... п ] → [ 1 ... п ] такое , что я = Ь р ( я ) для каждого I .a1a2…ana1a2…ana_1a_2\ldots a_nb1b2…bnb1b2…bnb_1b_2\ldots b_np:[1…n]→[1…n]p:[1…n]→[1…n]p:[1\ldots...

28
Существует ли структура данных «стек строк», которая поддерживает эти строковые операции?

Я ищу структуру данных , которая хранит множество строк над набором символов , способных выполнять следующие операции. Обозначим через D ( S ) в качестве структуры данных , хранящей множество строк S .ΣΣ\SigmaD(S)D(S)\mathcal{D}(S)SSS Add-Prefix-Setна : для некоторого множества T (возможно, пустых)...

26
Самая длинная повторяющаяся (рассеянная) подпоследовательность в строке

Неформальная постановка задачи: Для строки, например, , мы хотим, чтобы некоторые буквы были окрашены в красный цвет, а некоторые - в синий (а некоторые нет), чтобы чтение только красных букв слева направо давало тот же результат, что и чтение только синих букв.ACCABBABACCABBABACCABBAB В примере мы...

25
Эффективная структура картографических данных, поддерживающая приблизительный поиск

Я ищу структуру данных, которая поддерживает эффективный приблизительный поиск ключей (например, расстояние Левенштейна для строк), возвращая максимально возможное совпадение для клавиши ввода. Наилучшей структурой данных, которую я нашел до сих пор, являются деревья Буркхарда-Келлера , но мне было...

21
Сжатие доменных имен

Мне любопытно, как можно очень компактно сжать домен произвольного имени хоста IDN (как определено в RFC5890 ), и подозреваю, что это может стать интересной задачей. Хост Unicode или доменное имя (U-метка) состоит из строки символов Unicode, обычно ограниченных одним языком в зависимости от домена...

20
У каждой достаточно большой строки есть повторы?

Пусть - некоторый конечный набор символов фиксированного размера. Пусть α некоторая строка над Σ . Мы говорим, что непустая подстрока β в α является повторением, если β = γ γ для некоторой строки γ .ΣΣ\Sigmaαα\alphaΣΣ\Sigmaββ\betaαα\alphaβ=γγβ=γγ\beta = \gamma \gammaγγ\gamma Теперь мой вопрос...

19
Как время выполнения алгоритма Укконена зависит от размера алфавита?

Меня интересует вопрос об асимптотическом времени выполнения алгоритма Укконена , возможно, самого популярного алгоритма построения суффиксных деревьев за линейное (?) Время. Вот цитата из книги «Алгоритмы на строках, деревьях и последовательностях» Дэна Гасфилда (раздел 6.5.1): »... в...

16
динамическое программирование упражнений на струнах

Я работал над следующей проблемой из этой книги . Определенный язык обработки строк предлагает примитивную операцию, которая разбивает строку на две части. Поскольку эта операция включает в себя копирование исходной строки, для строки длиной n требуется n единиц времени, независимо от...

13
Как проверить, являются ли две строки перестановками друг друга, используя O (1) дополнительное пространство?

Учитывая две строки, как вы можете проверить, являются ли они перестановкой друг друга, используя пространство O (1)? Модификация строк никоим образом не допускается. Примечание: O (1) пробел по отношению как к длине строки, так и к размеру...

12
Подсчет количества сумм из смежных подмассивов массива

Нам дан массив со всеми a [ i ] > 0 .a [ 1 … n ]a[1…n]a[1 \ldots n]a [ i ] > 0a[i]>0a[i]>0 Теперь нам нужно найти сколько различных сумм могут быть сформирована из ее подрешеток (где подмассив представляет собой непрерывный диапазон массива, т.е. [ J ... K ] для некоторого J , к , сумма...

12
Изменить расстояние списка с уникальными элементами

Расстояние редактирования Левенштейна-расстояния между списками является хорошо изученной проблемой. Но я не могу найти много о возможных улучшениях, если известно, что ни один элемент не встречается более одного раза в каждом списке . Также предположим, что элементы сопоставимы / сортируемы (но...

11
Сравнение алгоритма Ахо-Корасика и алгоритма Рабина-Карпа

Я работаю над алгоритмами поиска строк, которые поддерживают поиск по нескольким шаблонам. Я нашел два алгоритма, которые кажутся наиболее сильными кандидатами с точки зрения времени выполнения, а именно: Aho-Corasick и Rabin-Karp . Однако я не смог найти исчерпывающего сравнения между этими двумя...

11
Частота слова с упорядочением по сложности O (n)

Во время собеседования на должность разработчика Java меня спросили следующее: Напишите функцию, которая принимает два параметра: Строка, представляющая текстовый документ и целое число, представляющее количество возвращаемых предметов. Реализуйте функцию так, чтобы она возвращала список Строк,...

10
Пример, где алгоритм Кнута-Морриса-Пратта работает быстрее, чем Бойер-Мур?

Эта страница, посвященная алгоритму Кнута-Мориса-Пратта по сравнению с Бойером-Муром, описывает возможный случай, когда алгоритм Бойера-Мура страдает небольшим пропуском, а KMP может работать лучше. Я ищу хороший пример (текст, шаблон), который может четко продемонстрировать этот...

10
Алгоритм быстрого k несоответствия строк

Я ищу быстрый алгоритм сопоставления строк k-несоответствие. Учитывая строку шаблона P длины m и текстовую строку T длины n, мне нужен быстрый (линейное время) алгоритм, чтобы найти все позиции, где P соответствует подстроке T с не более чем k несоответствиями. Это отличается от проблемы k-отличий...

10
Сложность наивного алгоритма нахождения самой длинной подстроки Фибоначчи

Учитывая два символа и , давайте определим строку Фибоначчи следующим образом:б кaa\text{a}бb\text{b}Кkk F( к ) = ⎧⎩⎨бaF( k - 1 ) ⋆ F( к - 2 )если  к=0если  к=1ещеF(k)={bif k=0aif k=1F(k−1)⋆F(k−2)else F(k) = \begin{cases} \text{b} &\mbox{if } k = 0 \\ \text{a} &\mbox{if } k = 1 \\ F(k-1) \star...

9
Найдите самый длинный повторяющийся узор в строке

Я ищу эффективный алгоритм, чтобы найти самый длинный повторяющийся образец в строке. Например, рассмотрим следующую строку чисел: 5431428571428571428571428571427623874534, Как видите, 142857142857это самый длинный шаблон, который повторяется в этой строке пару раз (по крайней мере, дважды)....

9
Учитывая n строк, является ли одна из них подстрокой другой?

Предположим, нам дан набор из строк, S 1 , … , S n . Я хотел бы знать, является ли какая-либо из этих строк подстрокой любой другой строки в коллекции. Другими словами, я хотел бы алгоритм для следующей задачи:NnnS1, … , SNS1,…,SnS_1,\dots,S_n Ввод: S1, … , SNS1,…,SnS_1,\dots,S_n Вывод: такой, что...

9
Нахождение самой длинной повторяющейся подпоследовательности

Учитывая строку , я хотел бы найти самую длинную повторяющуюся (по крайней мере дважды) подпоследовательность. То есть я хотел бы найти строку которая является подпоследовательностью (не обязательно должна быть смежной) такой что . То есть - это строка, половинки которой появляются дважды подряд....