题目描述:

  给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。

  示例:

  输入: "25525511135"
  输出: ["255.255.11.135", "255.255.111.35"]

题解:

class Solution {
public List<String> restoreIpAddresses(String s) { }
}

题解:

还是使用回溯法

public class L93 {
public static List<String> restoreIpAddresses(String s) {
List<String> result = new ArrayList<>();
if(s.length()<4){return Collections.EMPTY_LIST;}
Stack<String> temp = new Stack<>();
getIpAddresses(s,0,0,temp,result);
return result; }
public static boolean valid(String ss){
if(Integer.valueOf(ss) <= 255 && Integer.valueOf(ss)>0 && !ss.startsWith("0")){
return true;
} else if(ss == "0" || ss.equals("0")){
return true;
}
return false;
}
public static void getIpAddresses(String ss, int j, int i, Stack<String> temp, List<String> result){
if(i == 4 && j == ss.length()){
String xx = "";
for(int index =0;index<temp.size()-1;index++){
xx += temp.get(index) + ".";
}
xx += temp.get(temp.size()-1);
result.add(xx);
return;
}else if(i == 4 && j < ss.length()){
return;
}
for(int index =1;index<=3;index++){
//判断当前选取的字符串是有效的
if(j+index<=ss.length() && valid(ss.substring(j,j+index))){
i ++;
//那么就需要将此数保存,保存之前需要判断是不是入值得是第四个,如果是第四个,那么ss应该到头
temp.push(ss.substring(j,j+index));
//继续进行向下一个遍历
getIpAddresses(ss,j+index,i,temp,result);
//将数从栈中弹出
temp.pop();
i--; }else{
//如果当前选取的无效,那么久继续遍历
return;
}
} } public static void main(String[] args) {
restoreIpAddresses("255");
}
}

93. 复原IP地址的更多相关文章

  1. Java实现 LeetCode 93 复原IP地址

    93. 复原IP地址 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11. ...

  2. leetcode刷题-93复原IP地址

    题目 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔. 示例: 输入: &q ...

  3. leetcode 93 复原IP地址

    IP地址,分成四段,每段是0-255,按照每段的长度分别为1,2,3下一段长度分别1,2,3再下一段......进行递归遍历,能满足条件的假如res中.比较难想到的就是假如有一段是三位的010是不符合 ...

  4. 93复原IP地址。

    from typing import List# 这道题不是很难,但是限制条件有很多.# 用递归的方法可以很容易的想到.只需要四层递归就好了.# 每次进行加上限制条件.过滤每一层就好了..class ...

  5. 93. 复原 IP 地址

    做题思路or感想 这种字符串切割的问题都可以用回溯法来解决 递归三部曲: 递归参数 因为要切割字符串,所以要用一个startIndex来控制子串的开头位置,即是会切割出一个范围是[startIndex ...

  6. LeetCode 93. 复原IP地址(Restore IP Addresses)

    题目描述 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135&qu ...

  7. LeetCode:复原IP地址【93】

    LeetCode:复原IP地址[93] 题目描述 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: [&qu ...

  8. [LeetCode] Restore IP Addresses 复原IP地址

    Given a string containing only digits, restore it by returning all possible valid IP address combina ...

  9. LeetCode(93): 复原IP地址

    Medium! 题目描述: 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255. ...

随机推荐

  1. D3.js(v3)+react 制作 一个带坐标与比例尺的散点图 (V3版本)

    上一章做了柱形图,https://www.cnblogs.com/littleSpill/p/10835041.html   这一章做散点图.   散点图(Scatter Chart),通常是一横一竖 ...

  2. JS变量1

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 在IDEA中用Gradle构建项目时使用lombok以依赖出现出错

    情景: 之情一直是使用Maven构建的项目并且导入依赖后都可以正常使用,但是在换成Gradle时出现了不论使用什么版本的lombok的依赖都会提示@Sl4j注解的log找不到,但是编辑界面是不会报错的 ...

  4. python_django_urls模块与views模块请求访问过程

    diango接收到web请求后的在urls模块与views模块进行的过程操作: 匹配过程: urls拿到网址,在项目级urls中匹配,若在urlpatterns中存在,则跳转到应用级urls中匹配,若 ...

  5. Servlet - Servlet相关

    1. 概念 Servlet是指任何实现了Servlet接口的类, Servlet运行于支持Java的应用服务器中, Servlet可以响应任何类型的请求, 但大多数情况下, Servlet只用来扩展基 ...

  6. Vue.js和Webpack

    Vue.js Vue简单介绍 是一个轻量级的渐进式框架,一个前端项目可以使用使用Vue.js的一两个特性也可以整个项目都用Vue.js,很方便实现项目的增量开发 Vue.js的使用:() 在html页 ...

  7. javascript追加节点

    追加节点 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  8. Python 爬取拉钩网工作岗位

    如果拉钩网html页面做了调整,需要重新调整代码 代码如下 #/usr/bin/env python3 #coding:utf-8 import sys import json import requ ...

  9. linux下mysql权限配置

    先登入mysql mysql -u root -p 然后回车键入密码! 1.2 赋予主机B操作数据库的权限 mysql> grant usage on *.* to username@192.1 ...

  10. JVM内核-原理、诊断与优化学习笔记(九):锁

    文章目录 线程安全 多线程网站统计访问人数 多线程访问ArrayList 对象头Mark Mark Word,对象头的标记,32位 描述对象的hash.锁信息,垃圾回收标记,年龄 偏向锁 轻量级锁 B ...