Solo necesita calcular un número limitado de distancias de Levenshtein, una para cada posible punto de pivote del palíndromo. Un punto de pivote puede ser una letra o puede estar entre dos letras, por lo que una cadena de longitud n tiene 2n-1 puntos de pivote. Para cada punto de giro, se calcula la distancia Levenshtein de los caracteres antes del punto de pivote y el reverso de los caracteres después de que:
(m)ohammadsajjadhossain: Levensthein("", "niassohdajjasdammaho")
m ohammadsajjadhossain: Levensthein("m", "niassohdajjasdammaho")
m(o)hammadsajjadhossain: Levensthein("m", "niassohdajjasdammah")
mo hammadsajjadhossain: Levensthein("mo", "niassohdajjasdammah")
mo(h)ammadsajjadhossain: Levensthein("mo", "niassohdajjasdamma")
moh ammadsajjadhossain: Levensthein("moh", "niassohdajjasdamma")
etc.
Ahora solo tome el mínimo de estas distancias. Si la velocidad es importante, puede optimizar muchas de estas llamadas.
Un buen código de golf también ... –