gpt4 book ai didi

kotlin - 创建一种使用递归在kotlin中生成字符串的所有排列的方法

转载 作者:行者123 更新时间:2023-12-02 13:43:57 24 4
gpt4 key购买 nike

尝试编写一些代码来生成输入字符串的所有排列作为递归
练习,但无法弄清楚为什么会出现堆栈溢出错误。

fun main() {
println(subSet(listOf("abcd")))
}

fun subSet(s: List<String>): List<String>{
return listOf<String>() + createSubSets(s)
}

fun createSubSets(s: List<String>): List<String>{
if(s.isEmpty()){
return listOf()
}
return s.mapIndexed{i, elem ->
elem + createSubSets(s.drop(i))
}
}

最佳答案

该语句导致无限递归:

return s.mapIndexed { i, elem ->
elem + createSubSets(s.drop(i))
}

其中,第一次迭代的 i值为 0( elem是索引 0处的字符),并且递归调用 createSubSets(s.drop(i))等效于 createSubSets(s),因为从字符串中删除零个字符会返回原始字符串。

关于kotlin - 创建一种使用递归在kotlin中生成字符串的所有排列的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60811453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com