【发布时间】:2021-03-15 04:19:16
【问题描述】:
我遇到了这个问题,试图尝试使用 swift 递归地打印出字符串(字符)的给定数组的所有子集。值为 ("a1b2")。输出应该有 4 个子集。
目前卡在这里:
func overall(string: String) {
helper(string: string, i: 0, slate: "")
}
func helper(string: String, i: Int, slate: String) {
var result = [Any]()
let word = Array(string)
var counter = i
if string.count == counter {
result.append(slate)
} else {
if word[i].isNumber {
counter += 1
helper(string: string, i: counter, slate: slate + String(word[i]))
} else if word[i].isLowercase {
counter += 1
helper(string: string, i: counter, slate: slate + String(word[i]).uppercased())
} else {
counter += 1
helper(string: string, i: counter, slate: slate + String(word[i]).lowercased())
}
}
}
overall(string: "a1b2")
我在帮助函数中创建基本案例时遇到问题。另外我不确定我是否正确使用递归。能否请您帮忙解释一下,将不胜感激。
【问题讨论】:
-
“输出应该有 8 个子集” 真的吗???我计算的远不止这些。你的 8 岁是多少?
-
你的意思是像“a”、“a1”、“a1b”、“a1b2”、“1”、“1b”、“1b2”、“b”、“b2”、“2” ?
-
嗯,从您在问题中所说的任何内容来看,这完全无法猜测。试着写出更清晰的问题!如果你说你想要大写/小写变体,而不是使用神秘的“子集”术语,你会花多少钱?
-
所以问题是找到原始字符串的大小写变体。好的,现在我了解您在代码中试图实现的目标。只是和你描述的问题不符。
标签: ios swift recursive-datastructures