原文: https://www.programiz.com/kotlin-programming/examples/reverse-sentence
在此程序中,您将学习在 Kotlin 中使用递归循环来反转给定的句子。
示例:使用递归反转句子
fun main(args: Array<String>) {
val sentence = "Go work"
val reversed = reverse(sentence)
println("The reversed sentence is: $reversed")
}
fun reverse(sentence: String): String {
if (sentence.isEmpty())
return sentence
return reverse(sentence.substring(1)) + sentence[0]
}
运行该程序时,输出为:
The reversed sentence is: 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 程序