По заданной строке букв нижнего алфавита найдите K-й символ в строке, образованной подстроками (заданной строки) при объединении в отсортированном виде.
Примеры:
Input : str = “banana” K = 10 Output : n All substring in sorted form are, "a", "an", "ana", "anan", "anana", "b", "ba", "ban", "bana", "banan", "banana", "n", "na", "nan", "nana" Concatenated string = “aananaanana nanabbabanbanabananbananannanannana” We can see a 10th character in the above concatenated string is ‘n’ which is our final answer.
Простое решение состоит в том, чтобы сгенерировать все подстроки данной строки и сохранить их в массиве. Как только подстроки сгенерированы, сортируйте их и объединяйте после сортировки. Наконец, выведите K-й символ в объединенную строку.
Эффективное решение основано на подсчете отдельной подстроки строки с использованием суффиксного массива . Этот же метод используется и для решения этой проблемы. После получения суффиксного массива и массива lcp мы перебираем все значения lcp и для каждого такого значения вычисляем пропускаемые символы. Мы продолжаем вычитать эти много символов из нашего K, когда пропускаемый символ становится больше, чем K, мы останавливаемся и перебираем подстроки, соответствующие текущему lcp [i], в котором мы переходим от lcp [i] до максимальной длины строки, а затем напечатайте символ K
|
Выход:
n
Эта статья предоставлена Уткаршем Триведи . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- N-й символ в объединенной десятичной строке
- Вывести окончательную строку, когда строки минимальных значений объединяются в каждой операции
- Программа для печати всех подстрок данной строки
- Подсчитать подстроки, которые начинаются с символа X и заканчиваются символом Y
- Вывести первый и последний символ каждого слова в строке
- Вывести последний символ каждого слова в строке
- Вывести строку после того, как указанный символ произошел, если нет. времен
- Распечатать строку, игнорируя альтернативные вхождения любого символа
- Распечатать массив строк в отсортированном порядке без копирования одной строки в другую
- Объединенная строка с необычными символами в Python
- Объединенная строка с необычными символами из двух строк
- Подсчитать все подстроки, имеющие символ K
- Максимальное число последовательных нулей в объединенной двоичной строке
- Количество подстрок, которое содержит данный символ K раз
- Количество подстрок с количеством каждого символа в k
0.00 (0%) 0 votes