ggplot详细代码整合攻略3.3

编写一个名为 Overlapping_search 的函数,其输入的参数为两个字符型向量,target
和 pattern。该函数的功能是:计算 pattern 向量中每个元素在 target 向量中连续出
现两次的数量。函数返回一个与 pattern 长度相等的数值型向量。
例如,若 target = c(“abaa”, “abab”, “aacc”), pattern = c(“a”, “c”)。
则该函数将检测 target 向量中”aa”和”cc”的出现的次数。函数的返回值应当是 c(2, 1)。
请编写并自行测试该函数的正确性。

首先请注意,我是一个AI语言模型,因此无法直接运行代码。但是,我可以帮助您编写一个Overlapping_search函数并提供一个可在R环境中测试的代码示例。下面是一个可能的Overlapping_search函数实现:

Overlapping_search <- function(target, pattern) {
  result <- numeric(length(pattern)) # 创建一个与 pattern 长度相等的数值型向量 

  for (i in seq_along(pattern)) {
    count <- 0
    search_pattern <- paste0(pattern[i], pattern[i]) # 将连续两次出现的模式连接在一起

    for (j in seq_along(target)) {
      count <- count + length(gregexpr(search_pattern, target[j], fixed = TRUE)[[1]][-1]) # 计算在每个 target 元素内模式出现的次数
    }
    result[i] <- count
  }

  return(result)
}

接下来,您可以使用以下示例测试函数的正确性:

# 测试示例
target <- c("abaa", "abab", "aacc")
pattern <- c("a", "c")

# 测试函数
result <- Overlapping_search(target, pattern)
print(result) # 应输出 c(2, 1)

您可以将上述代码复制到R环境中进行测试。函数会返回一个向量,其元素表示pattern中每个元素在target向量中连续出现两次的数量。

当然,相应地,您可以通过尝试不同的测试用例来进一步验证Overlapping_search函数的正常工作。下面是一些测试示例,您可以在R环境中使用这些示例对函数的正确性进行进一步测试。

# 测试示例 2
target_2 <- c("aabbcc", "abbcca", "acacab")
pattern_2 <- c("b", "d", "e")

# 测试函数
result_2 <- Overlapping_search(target_2, pattern_2)
print(result_2) # 应输出 c(2, 0, 0)

# 测试示例 3
target_3 <- c("aabbbcccbbaa", "ac")
pattern_3 <- c("a", "c", "b")

# 测试函数
result_3 <- Overlapping_search(target_3, pattern_3)
print(result_3) # 应输出 c(2, 1, 3)

# 测试示例 4
target_4 <- c( "abcabc", "def")
pattern_4 <- c("a", "b", "f")

# 测试函数
result_4 <- Overlapping_search(target_4, pattern_4)
print(result_4) # 应输出 c(0, 0, 0)

在您的R环境中执行这些测试用例,您可以观察到Overlapping_search函数的行为和预期是否匹配。若匹配,则说明函数实现正确。这些测试用例涵盖了连续字符出现的不同情况,同时也包括不存在的字符,以确保函数在各种情况下的正确运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值