mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
添加 0093.复原IP地址.md Scala版本
This commit is contained in:
@ -659,6 +659,48 @@ func restoreIpAddresses(_ s: String) -> [String] {
|
||||
}
|
||||
```
|
||||
|
||||
## Scala
|
||||
|
||||
```scala
|
||||
object Solution {
|
||||
import scala.collection.mutable
|
||||
def restoreIpAddresses(s: String): List[String] = {
|
||||
var result = mutable.ListBuffer[String]()
|
||||
if (s.size < 4 || s.length > 12) return result.toList
|
||||
var path = mutable.ListBuffer[String]()
|
||||
|
||||
// 判断IP中的一个字段是否为正确的
|
||||
def isIP(sub: String): Boolean = {
|
||||
if (sub.size > 1 && sub(0) == '0') return false
|
||||
if (sub.toInt > 255) return false
|
||||
true
|
||||
}
|
||||
|
||||
def backtracking(startIndex: Int): Unit = {
|
||||
if (startIndex >= s.size) {
|
||||
if (path.size == 4) {
|
||||
result.append(path.mkString(".")) // mkString方法可以把集合里的数据以指定字符串拼接
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
// subString
|
||||
for (i <- startIndex until startIndex + 3 if i < s.size) {
|
||||
var subString = s.substring(startIndex, i + 1)
|
||||
if (isIP(subString)) { // 如果合法则进行下一轮
|
||||
path.append(subString)
|
||||
backtracking(i + 1)
|
||||
path = path.take(path.size - 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
backtracking(0)
|
||||
result.toList
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
-----------------------
|
||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||
|
Reference in New Issue
Block a user