题目描述:

  给定一个只包含数字的字符串,复原它并返回所有可能的 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. java 生成随机数字+字母组合 和字母组合

    生成随机数包含数字,字母 /** * 生成随机数当作getItemID * n : 需要的长度 * @return */ private static String getItemID( int n ...

  2. git 常用命令 mv rm checkout revert reset

    关于上节讲的git add 时需要添加注释信息,也可以在git commit时再添加 laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/gi ...

  3. pytest--fixure前置执行一个函数

    import pytest@pytest.fixture()def login_r(): print('登陆') @pytest.fixture()def open_browser(): print( ...

  4. 关于第一次将STM32与电脑连接情况

    安装了Keil(ARM)版本之后,不管是自己编程,还是配套的程序运行.我们都想把它下载到STM32芯片里面,在板子上运行.这里介绍几种方法. 1.用J-LINK下载调试. 这个工具,可以直接点击kei ...

  5. w - 显示已经登录的用户以及他们在做什么

    总览 (SYNOPSIS) w - [husfV] [user] 描述 (DESCRIPTION) w 显示 系统中 当前用户 的 信息, 以及 他们 的 进程. 第一行 中 依次 显示 当前时间, ...

  6. jq-demo-点击改变图片

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. leetcood学习笔记-113-路径总和 II

    题目描述: 参考后的提交: class Solution(object): def pathSum(self, root, sum): """ :type root: T ...

  8. Android Activity XML配置

    <activity android:name="xxxActivity" android:configChanges="keyboard|keyboardHidde ...

  9. Shader实现新手指引挖空圆形和矩形

    这个是参考这个做的:https://blog.csdn.net/tracyzly/article/details/80279692 Shader "UI/ImageWithHole" ...

  10. beaglebone black 与电脑互传文件(夹)

    1. PSCP方法 PSCP,是putty的一个组件. 1.1 下载PSCP 先给连接http://www.chiark.greenend.org.uk/~sgtatham/putty/downloa ...