更新 541. 反转字符串II, 提供scala版本的递归解法

This commit is contained in:
Jijie LIU
2022-10-19 21:47:25 +02:00
committed by GitHub
parent 237728f703
commit 9977fb5996

View File

@ -412,6 +412,26 @@ object Solution {
} }
``` ```
版本三: (递归)
```scala
import scala.annotation.tailrec
object Solution {
def reverseStr(s: String, k: Int): String = {
@tailrec // 这个函数已经优化成了尾递归
def reverse(s: String, needToReverse: Boolean, history: String): String = {
// 截取前k个字符判断是否翻转
val subStr = if (needToReverse) s.take(k).reverse else s.take(k)
// 如果字符串长度小于k返回结果
// 否则,对于剩余字符串进行同样的操作
if (s.length < k) history + subStr
else reverse(s.drop(k), !needToReverse, history + subStr)
}
reverse(s, true, "")
}
}
```
Rust: Rust:
```Rust ```Rust