递归还是循环?

什么时候应该使用递归函数而不是循环语句?同样,什么时候应该使用 循环语句 而不是 递归

我常常发现自己有点不确定如何回答这个问题,并且我发现自己回想起过去的一个玩具问题。问题是这样的:

编写一组代码来评估提供的 String 变量是否是回文。您的代码应该确定反映此条件的布尔值。

考虑到一些约束和边缘条件,我花了一段时间来解决代码。然而,最终我能够通过使用递归函数解决这个问题。

Image description

过了一会儿我想知道,这可以通过 For 循环实现吗?于是,我开始寻找答案并开始尝试。我发现,果然,这也可以通过 Loop 语句来完成。

Image description

当我反思这两组代码时,我发现自己有些沮丧,因为感觉我仍然没有理解为什么你更喜欢递归语句而不是循环。我在 StackExchange 上看到了一个讨论,它对这个主题有了一些启发。一位名叫 Scant Roger 的开发者说道:

“最终,没有什么递归可以计算而循环不能,但循环需要更多的管道。因此,递归可以做而循环不能做的一件事是使一些任务变得超级简单……通常是递归解决方案有问题更漂亮。”

我发现罗杰是绝对正确的;我发现编写递归解决方案比使用 Loop 语句开发相同的解决方案要容易得多。如果创建递归解决方案更容易,并且稍后将其重新设计为循环(以降低代码复杂性),我认为那很好。

你有什么想法?我对编码还是新手,我很想听听其他人的意见!

以上就是递归还是循环?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2673222.html

(0)
上一篇 2025年3月7日 13:38:03
下一篇 2025年3月7日 13:38:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 中级:在 React 中管理表单

    表单对于在 web 应用程序中收集用户输入至关重要。在 react 中管理表单可能会变得复杂,尤其是在处理验证、多步骤流程和文件上传时。本指南深入探讨了管理表单的状态、使用引用、实现验证和处理复杂表单。 受控组件 受控组件是由组件状态处理表…

    2025年3月7日
    000
  • 恭喜 Wix Studio 挑战赛获胜者!

    从带有游戏元素的电子商务网站到可定制的运动鞋,再到人工智能辅助的购物体验,我们的 wix studio 挑战赛评委团队需要考虑很多因素。 经过深思熟虑,特邀评委 Ania Kubów 对一位幸运获奖者的提交作品给予了最后的认可。 恭喜… @…

    2025年3月7日
    200
  • 初级水平:在 React 中管理表单

    管理表单是开发 react 应用程序的一个基本方面。本指南将帮助您了解如何处理带有状态的表单数据、如何使用不受控制的组件的引用、执行表单验证以及管理复杂的表单,包括多步骤表单和文件上传。 受控组件 受控组件是由组件状态处理表单数据的组件。这…

    2025年3月7日
    200
  • JavaScript 开发的最佳实践

    javascript 开发的最佳实践 javascript 是使用最广泛的编程语言之一,为数百万网站和应用程序提供支持。为了确保您的 javascript 代码高效、可维护且健壮,遵循最佳实践至关重要。本文涵盖了每个 javascript …

    2025年3月7日
    200
  • Bhaiya 和 Didi 如何扼杀新生就业市场

    近年来,印度就业市场格局发生了深刻的转变,很大程度上受到印度软件工程师中一种被称为“Bhaiya and Didi”文化的文化现象的影响。这个术语指的是经验丰富的专业人士,他们在科技行业尝到了成功的滋味,决定走不同的道路。然而,他们的选择无…

    2025年3月7日
    200
  • 清单json

    manifest.json 对于渐进式 web 应用程序是必需的。 { “background_color”: “#fff”, “display”: “standalone”, “description”: “Awesome applica…

    2025年3月7日
    200
  • 中级:React 中的生命周期方法和 Hook

    作为中级开发人员,理解并有效使用 react hooks 和生命周期方法对于构建健壮、可维护和可扩展的应用程序至关重要。本文将深入探讨基本钩子、自定义钩子和高级钩子模式,例如使用 usereducer 管理复杂状态以及使用 usememo …

    2025年3月7日
    200
  • 探索 Effect-TS 中的选项转换

    effect-ts 提供了处理 option 和 either 类型的强大工具。在本文中,我们将探索使用库的实用函数转换和操作这些类型的各种方法。 示例 1:使用 o.getright 将 either 转换为 option o.getri…

    2025年3月7日
    200
  • 高级:在 React 中管理表单

    在 react 中管理表单可能会变得复杂,尤其是在处理多步骤表单、文件上传和复杂的验证逻辑等高级场景时。本指南深入介绍了受控和非受控组件、表单验证和管理复杂表单,帮助您在 react 应用程序中创建健壮且可维护的表单处理。 受控组件 rea…

    2025年3月7日
    200
  • 使用 Java 高级 REST 客户端提升您的 Elasticsearch 体验 ()

    介绍 java high level rest client (7.x) 是一个与 elasticsearch 集群交互的强大工具,使服务器通信更容易访问和高效。在本指南中,我们将引导您完成在阿里云 elasticsearch 集群上使用高…

    2025年3月7日
    200

发表回复

登录后才能评论