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 程序反转句子

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战