RosettaCodeData/Task/Look-and-say-sequence/Swift/look-and-say-sequence.swift
2019-09-12 10:33:56 -07:00

28 lines
456 B
Swift

func lookAndSay(_ seq: [Int]) -> [Int] {
var result = [Int]()
var cur = seq[0]
var curRunLength = 1
for i in seq.dropFirst() {
if cur == i {
curRunLength += 1
} else {
result.append(curRunLength)
result.append(cur)
curRunLength = 1
cur = i
}
}
result.append(curRunLength)
result.append(cur)
return result
}
var seq = [1]
for i in 0..<10 {
print("Seq \(i): \(seq)")
seq = lookAndSay(seq)
}