Problema

Il problema è il seguente: trovare la sottosequenza palindroma più lunga all’interno di una stringa.

Un palindromo è una sequenza di caratteri che viene letta allo stesso modo da sinistra a destra e da destra a sinistra. Ad esempio, “radar” è un palindromo perché viene letto nello stesso modo sia da sinistra a destra che da destra a sinistra.

Soluzione

Utilizzo l’algoritmo di espansione centrale: inizia con un carattere o una coppia di caratteri all’interno della stringa e cerca di espandere questa sottosequenza palindroma in entrambe le direzioni. Se la sottosequenza palindroma viene estesa con successo, salva la sottosequenza più lunga finora trovata. Continua a fare questo per ogni carattere o coppia di caratteri all’interno della stringa, restituendo infine la sottosequenza palindroma più lunga trovata.

Di seguito la soluzione in C# completamente commentata: TODO