这个仓库包含一系列编程挑战,旨在使用Kotlin语言来解决(这里也有提示、解决方案、测试和有用的链接)。
本仓库的目的是帮助你练习编码并培养强大的问题解决能力。这将帮助你成为更好的程序员,并通过通过白板编码面试来提高获得新工作的机会。
每个挑战都位于单独的包中,包含3个主要文件(截图):
README.md - 任务描述。Challenge.kt - 包含应该解决挑战的空方法/类的文件。该文件还包含一组测试,有时还包含辅助方法。你可以直接从这个文件运行所有测试(点击Test类旁边的绿色箭头)。
JUnit测试用于验证任务是否正确解决。Solution.kt - 包含一个或多个解决方案的文件。请记住,每个挑战通常会有不止一种解决方案。即使是像字符串反转这样简单的挑战也可以用10种不同的方式来解决。通常,我们使用(大O表示法)来比较各种解决方案的空间/时间复杂度,并关注代码的可读性。
File | New | Project From Version Control | GitChallenge.kt文件中编写解决方案以下挑战按不同难度分类。该仓库还包含按问题类型分组的挑战。
一些挑战可能会引用其他应该先解决的挑战,以便更好地理解问题。查看问题解决策略。
在查看给出的解决方案之前,请花些时间思考。要成功,你需要经常练习,多次重复相同的挑战,并长期保持坚持。
祝你好运!🤞
初级
[列出初级挑战]
中级
[列出中级挑战]
高级
[列出高级挑战]
专家
如果你看不到用于运行测试的绿色播放图标,请尝试打开"设置" > "构建、执行、部署" > "构建工具" > "Gradle",并将"Gradle JVM"设置为不同的版本。
欢迎通过错误报告或新的PR提供反馈和新的贡献。要添加新的编码挑战,只需遵循此指南并开启PR。
MIT许可证
版权所有 (c) 2023 Igor Wojda
特此免费授予任何获得本软件副本和相关文档文件("软件")的人不受限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,以及允许向其提供本软件的人这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。
本软件按"原样"提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为还是其他方面,由软件或软件的使用或其他交易引起或与之相关。