Número de palíndromos dentro de una cadena

He escrito el siguiente código para contar el número de cadenas palindrómicas en una cadena dada:

countPalindromes <- function(str){
  len <- nchar(str)
  count <- 0

  for(i in 1:len){
    for(j in i:len){
        subs <- substr(str, i, j)
        rev <- paste(rev(substring(subs, 1:nchar(subs), 1:nchar(subs))), collapse = "")
        if(subs == rev){
          count <- count + 1
        }
      }
  }
  count
}

Esto en realidad funciona bien, pero el código debe optimizarse de tal manera que se ejecute a un ritmo más rápido.

Por favor, sugiera algunas formas de optimizar este fragmento de código.

Respuestas a la pregunta(3)

Su respuesta a la pregunta