【问题标题】:All possible sequences of given sets of characters给定字符集的所有可能序列
【发布时间】:2022-12-07 16:34:49
【问题描述】:

我有以下字符串:

'[ABC][abcd][XYZ]'

我想生成所有可能的字符串,其中第一个字符是 A、B 或 C,第二个字符是 a、b、c 或 d,第三个字符是 X、Y 或 Z。

示例:AcX、BaZ 等。

如何做到这一点,最好是在 Tidyverse 中?

【问题讨论】:

    标签: r tidyr


    【解决方案1】:

    首先 splitstr 适当地获取列表的字符串,然后使用 expand.gridpaste0 以及 do.call

    el(strsplit('[ABC][abcd][XYZ]', '[\[|\]]', perl=TRUE)) |>
      {(x) x[x != '']}() |>
      sapply(strsplit, '') |>
      do.call(what=expand.grid) |>
      do.call(what=paste0)
    # [1] "AaX" "BaX" "CaX" "AbX" "BbX" "CbX" "AcX" "BcX" "CcX" "AdX" "BdX" "CdX" "AaY" "BaY" "CaY" "AbY" "BbY" "CbY" "AcY" "BcY"
    # [21] "CcY" "AdY" "BdY" "CdY" "AaZ" "BaZ" "CaZ" "AbZ" "BbZ" "CbZ" "AcZ" "BcZ" "CcZ" "AdZ" "BdZ" "CdZ"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多