美文网首页
93. 复原 IP 地址

93. 复原 IP 地址

作者: 邦_ | 来源:发表于2022-07-20 09:53 被阅读0次

    自己想的。。可能剪枝条件还是不太好。。

    
    func restoreIpAddresses(_ s: String) -> [String] {
            let len = s.count
            var ans = [String]()
            let numArray = Array(s)
            var tempArray = [String]()
            var sumLen = 0
            dfs(0,0,numArray,len,&sumLen,&tempArray,&ans)
            return ans
            
        }
        
        func dfs(_ index:Int, _ bengin:Int,_ numArray:[Character],_ len:Int,_ sumLen:inout Int,_ tempArray:inout [String],_ ans:inout [String]){
            
            //因为只能有四个数
            if index == 4 {
    //            //长度不够,肯定不符合要求
                if sumLen == len {
                    ans.append(tempArray.joined(separator: "."))
                }
                return
            }
            //每一层可以选择的数字
            for i in bengin..<len {
                var str = ""
                for j in 0..<3 {
                   
                    if i + j < len {
                        str.append(numArray[i + j])
                        //1位数字的话都可以。。2位数字的话 要大于10 三位数字的话要大于100小于等于255
                        let numValue = Int(str) ?? 0
                        if (j == 2 && numValue <= 255 && numValue >= 100) || ( j == 1 && numValue >= 10) || j == 0{
                            sumLen += str.count
                            tempArray.append(str)
                            dfs(index + 1,i + j + 1,numArray,len,&sumLen,&tempArray,&ans)
                            sumLen -= tempArray.removeLast().count
                            //不用往下找了
                            if j == 2 {
                                return
                            }
                            
                        }
                       
                        
                    }
                    
                    
                }
             
               
                
            }
            
            
            
            
            
            
            
        }
    
    
    
    
    
    
    
    
    
    
    
    

    相关文章

      网友评论

          本文标题:93. 复原 IP 地址

          本文链接:https://www.haomeiwen.com/subject/wlrsirtx.html