Мой профессор говорил об этом в динамическом классе программирования и попросил нас задуматься над этим. Она дала нам несколько примеров. Учитывая строку, мы должны были найти самую длинную непрерывную подпоследовательность, обратное которой также является подпоследовательностью, присутствующей в данной строке.Подстрока и ее обратная сторона в строке
Пример:
INPUT: pqrstuvtsrv
OUTPUT: i=3, k=2
rst -> tsr (rst found first at i=3 and for 2 more positions)
INPUT: mpqrsrqp
OUTPUT: i=2, k=6
pqrsrqp in reverse
INPUT: mmpqssss
OUTPUT: i=5, k=3
я подумал положить строку и его обратное в 2-х разных массивов и сравнивая символ за символом. Но я уверен, что это не лучший способ сделать это. Какие-либо предложения относительно того, что может быть наиболее эффективным?
Но это должна быть непрерывная подстрока, обратная сторона которой также присутствует в данной строке. Как это изменить? – christa
@christa: Самый длинный общий алгоритм подстроки ищет самую длинную общую (непрерывную) подстроку из двух строк арбитража, например s1 и s2. Если вы дадите s2 быть обратным s1, вы получите свое решение. – Jens