Skip to content

Commit 9977fb5

Browse files
authored
更新 541. 反转字符串II, 提供scala版本的递归解法
1 parent 237728f commit 9977fb5

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

problems/0541.反转字符串II.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,26 @@ object Solution {
412412
}
413413
```
414414

415+
版本三: (递归)
416+
```scala
417+
import scala.annotation.tailrec
418+
419+
object Solution {
420+
def reverseStr(s: String, k: Int): String = {
421+
@tailrec // 这个函数已经优化成了尾递归
422+
def reverse(s: String, needToReverse: Boolean, history: String): String = {
423+
// 截取前k个字符(判断是否翻转)
424+
val subStr = if (needToReverse) s.take(k).reverse else s.take(k)
425+
// 如果字符串长度小于k,返回结果
426+
// 否则,对于剩余字符串进行同样的操作
427+
if (s.length < k) history + subStr
428+
else reverse(s.drop(k), !needToReverse, history + subStr)
429+
}
430+
reverse(s, true, "")
431+
}
432+
}
433+
```
434+
415435
Rust:
416436

417437
```Rust

0 commit comments

Comments
 (0)