计算R编程中回文的子字符串的数量

时间:2018-06-30 17:16:50

标签: r palindrome

我正在编写R函数,以返回回文字符串中子字符串的数量。

示例输入

aba

预期输出:

4

回文子字符串为a, b, a, aba。下面是我写的函数,可以正常工作。但是,有什么方法可以替换循环或提高此代码的性能:

countPalindromes <- function(str){
  len <- nchar(str)
  strsp <- strsplit(str, "")[[1]]
  count <- 0

  for(i in 1:len){
    for(j in i:len){
      if(all(strsp[i:j] == strsp[j:i])){
        count <- count + 1
      }
    }
  }
  cat(count)
}

f <- file("C:\\Input.txt")
open(f)
s = readLines(f, n = 1, warn = FALSE)
countPalindromes(s)

谢谢。

0 个答案:

没有答案