【问题标题】:Create new array from groupings of characters?从字符分组创建新数组?
【发布时间】:2016-08-26 02:56:20
【问题描述】:

我的输出类似于如下所示:

RRRYYYYYGGYGGGGGYRRRRRYYYYGBBBGYYYYYRRRRYYYYGBBBBYYYYYRRRRYYYYGBBBBRRRRRRRRRRRRRYBBBBGGGGGGGGGRRRRGGGGGGGGGGBBBBBBBBBRRRRGGGGGBBBBBBBBBGYGGBBBBBGGYRBBBBBGGGGBBBBGGGGGBBBBGGYYGBBBBGGGGGBBBBRRRRGGGGGBBBYYYRGGGGYYYYYYYYYYYYGGYYYGGGBGGYYYYGGGGGBBBBBBBBGYRYYGGGGGBBBBBBBBGYRYGGGGGGGGGGBBBBBGGGGGGGGGBBBBBBRRRRRRRYYYYYYYYYYYYYYYYYYRRRRYYYYYGGGGGYYYYYYYYYYYYYRYYYRRRGGYYYYYYYYYRRRRGRRRRYYYYYYYYYRRRRRYYYYYYY P>

我希望创建一个新的字符串或数组来根据分组列出字符。例如,新数组的开头可能是:RYGGRYBYR.... 有些字母是错误的,不应该考虑在内,例如第 6 个“Y”。我该怎么办?如果您希望我澄清我的目标,请发表评论。谢谢。

【问题讨论】:

  • 为什么有些字母有错误,不予考虑?
  • 如果我们不确定哪些应该计入或不计入,我们应该如何帮助您?
  • @impression7vx 如果他们没有重复,那就是错误
  • @LeoDabus 是正确的

标签: arrays swift string filter uniq


【解决方案1】:

试试这样:

let input = "RRRYYYYYGGYGGGGGYRRRRRYYYYGBBBGYYYYYRRRRYYYYGBBBBYYYYYRRRRYYYYGBBBBRRRRRRRRRRRRRYBBBBGGGGGGGGGRRRRGGGGGGGGGGBBBBBBBBBRRRRGGGGGBBBBBBBBBGYGGBBBBBGGYRBBBBBGGGGBBBBGGGGGBBBBGGYYGBBBBGGGGGBBBBRRRRGGGGGBBBYYYRGGGGYYYYYYYYYYYYGGYYYGGGBGGYYYYGGGGGBBBBBBBBGYRYYGGGGGBBBBBBBBGYRYGGGGGGGGGGBBBBBGGGGGGGGGBBBBBBRRRRRRRYYYYYYYYYYYYYYYYYYRRRRYYYYYGGGGGYYYYYYYYYYYYYRYYYRRRGGYYYYYYYYYRRRRGRRRRYYYYYYYYYRRRRRYYYYYYY"
var result: [Character] = []
var lastChar: Character?
var repetitions = 0
for char in input.characters {
    if char == lastChar {
        repetitions += 1
    } else {
        repetitions = 0
    }
    if repetitions == 1 {
        result.append(char)
    }
    lastChar = char
}

print(String(result))  // "RYGGRYBYRYBYRYBRBGRGBRGBGBGBGBGBGYBGBRGBYGYGYGGYGBYGBGBGBRYRYGYYRGYRRYRY\n"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 2022-07-20
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多