mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +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:
|
||||||
|
|
||||||
```Rust
|
```Rust
|
||||||
|
Reference in New Issue
Block a user