Dato una stringa di lunghezza N contenente caratteri [A-Z], come faccio a determinare il palindromo più lungo per un singolo carattere?Come determinare in modo efficiente il palindromo di un singolo carattere più lungo in una determinata stringa?
Illustrerò con un esempio:
stringa data: JOHNOLSON
Nell'analizzare la stringa, troviamo che abbiamo un palindromo con il carattere O
in modo tale che la stringa assomiglia J
O
HN
O
LS
O
N
. Il palindromo per il 's O
è di lunghezza 7 essenzialmente cercando come O
--
O
--
O
. Inoltre, si noti che non v'è un palindromo con N
, ma è solo di lunghezza 6.
Un altro esempio, stringa Dato: ABCJOHNOLSON
dà lo stesso risultato di cui sopra con un palindromo dei O
's di lunghezza di 7 assomigliare O
--
O
--
O
.
Tuttavia, con la stringa data ABCJOHNOLSONDA
, il più lungo palindromo carattere individuale è di lunghezza 14 con il carattere A
cercando come A
------------
A
.
Altri esempi semplici comprendono:
ABA
->A
-
A
(lunghezza 3)
ABAXYZ
->A
-
A
(lunghezza 3)
ABAXYZA
->A
---
A
(lunghezza 5), non è la lunghezza 7 perché A
-
A
---
A
non è un palindromo per la lettera A
.
Prestare particolare attenzione all'ultimo esempio perché illustra una delle sottili sfumature del problema.
Ci deve essere un termine migliore per quello che stai cercando rispetto a "palindromo" perché la maggior parte dei tuoi esempi non sono palindromi. – Blastfurnace
Considera una stringa di esempio 'ABCDAEEALMNA' che quando si considera l'aspetto' A' assomiglierebbe a 'A --- A - A --- A' che è un palindromo (quando si ignora l'unicità del resto dei caratteri) della dimensione 12, ma consideriamo la stringa 'ABCDAEEALMNOA' di cui l'intera stringa non è più un palindromo, invece una sottostringa molto più piccola diventa il palindromo più lungo, cioè' A --- A' di lunghezza 5 alla fine. – jbranchaud
Capisco il 'modello' che ti interessa, ma non si adatta alla definizione del dizionario del termine palindrome. Mi chiedo se esiste una soluzione di espressione regolare per ciò che stai cercando. – Blastfurnace