我想创建一个string
,其中将包含一个*
符号n
时间。
我只看到这种方式:
val s = ""
val n = 100
for (j in 0 until n) {
s += "*"
}
但是它看起来很丑,并且具有O(n ^ 2)的时间复杂度。 Kotlin中有没有一种方法可以在没有循环的情况下实现更好的时间复杂性?
最佳答案
内置的 CharSequence.repeat
扩展可以高效地完成此操作,请参见here源。
val str: String = "*".repeat(100)
当然,这仍然需要O(n)个步骤来创建字符串。但是,使用此内置的stdlib函数具有其优点:它是跨平台的,易于阅读,并且如果有更有效的解决方案,则可以随着时间的推移提高性能。无论如何,编译器或运行时都可能会优化其中的循环。
关于kotlin - 在Kotlin中重复字符串n次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48446286/