跳到主要内容

Kotlin 程序使用递归反转一个句子

示例:使用递归反转句子

fun main(args: Array<String>) {
val sentence = "Go work"
val reversed = reverse(sentence)
println("反转后的句子是:$reversed")
}

fun reverse(sentence: String): String {
if (sentence.isEmpty())
return sentence

return reverse(sentence.substring(1)) + sentence[0]
}

当您运行该程序时,输出将为:

反转后的句子是:krow oG

在上面的程序中,我们有一个递归函数reverse()

在每次迭代中,我们使用charAt(0)将下一个reverse()函数的结果与句子的第一个字符连接在一起。

递归调用必须位于charAt()之前,因为这样最后的字符将从左边开始添加。如果您颠倒顺序,最终会得到原始句子。

最后,我们得到一个空的sentencereverse()返回了反转后的句子。

执行步骤

迭代reverse()substring()reversedString
1reverse("Go work")"o Work"result + "G"
2reverse("o Work"" Work"result + "o" + "G"
3reverse(" Work")"Work"result + " " + "o" + "G"
4reverse("Work")"ork"result + "W" + " " + "o" + "G"
5reverse("ork")"rk"result + "o" + "W" + " " + "o" + "G"
6reverse("rk")"k"result + "r" + "o" + "W" + " " + "o" + "G"
7reverse("k")""result + "k" + "r" + "o" + "W" + " " + "o" + "G"
最终reverse("")-"" + "k" + "r" + "o" + "W" + " " + "o" + "G" = "kroW oG"

以下是等效的Java代码:Java程序以反转句子