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()
之前,因为这样最后的字符将从左边开始添加。如果您颠倒顺序,最终会得到原始句子。
最后,我们得到一个空的sentence
,reverse()
返回了反转后的句子。
执行步骤
迭代 | reverse() | substring() | reversedString |
---|---|---|---|
1 | reverse("Go work") | "o Work" | result + "G" |
2 | reverse("o Work" | " Work" | result + "o" + "G" |
3 | reverse(" Work") | "Work" | result + " " + "o" + "G" |
4 | reverse("Work") | "ork" | result + "W" + " " + "o" + "G" |
5 | reverse("ork") | "rk" | result + "o" + "W" + " " + "o" + "G" |
6 | reverse("rk") | "k" | result + "r" + "o" + "W" + " " + "o" + "G" |
7 | reverse("k") | "" | result + "k" + "r" + "o" + "W" + " " + "o" + "G" |
最终 | reverse("") | - | "" + "k" + "r" + "o" + "W" + " " + "o" + "G" = "kroW oG" |
以下是等效的Java代码:Java程序以反转句子。