Мне нужен алгоритм для поиска наибольшей уникальной (без дубликатов символов) подстроки из строки путем удаления символа (без переупорядочения).Найти лексикографически наибольшую уникальную строку
Строка A больше, чем String B, если она удовлетворяет этим двум условиям.
1. Has more characters than String B
Or
2. Is lexicographically greater than String B if equal length
Например, если входной является строка Dedede, то возможные уникальные комбинации де, ред, д и е.
Из этих комбинаций, самый большой один поэтому ред, поскольку она имеет больше символов, чем д и е и лексикографически больше, чем де.
Алгоритм должен быть более эффективным, чем генерировать все возможные уникальные строки и сортировать их, чтобы найти самый большой.
Примечание: это не домашнее задание.
Это домашнее задание? Что вы пробовали? – twain249
Я считаю, что это должно быть возможно в O (n) раз, за один проход. Требования к пространству - это всего лишь индикаторный массив, один элемент для каждого возможного символьного значения. –
Являются ли эти два правила И ИЛИ ИЛИ? Это должно быть истинным или может быть истинным, для (A> B)? – RBarryYoung