mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 02:53:31 +08:00
更新 541. 反转字符串II, 提供scala版本的递归解法
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user