首页 > 编程语言 >【面试高频题】难度 2/5,回溯算法经典运用

【面试高频题】难度 2/5,回溯算法经典运用

时间:2022-12-10 11:34:32浏览次数:48  
标签:cur idx int ans dfs 面试 str 回溯 高频

题目描述

这是 LeetCode 上的 ​​93. 复原 IP 地址​​ ,难度为 中等

Tag : 「回溯」、「DFS」

有效 ​​IP​​​ 地址 正好由四个整数(每个整数位于 ​​0​​​ 到 ​​255​​​ 之间组成,且不能含有前导 ​​0​​​),整数之间用 ​​'.'​​ 分隔。

例如:​​"0.1.2.201"​​​ 和 ​​"192.168.1.1"​​​ 是 有效 ​​IP​​​ 地址,但是 ​​"0.011.255.245"​​​、​​"192.168.1.312"​​​ 和 ​​"[email protected]"​​​ 是 无效 ​​IP​​ 地址。

给定一个只包含数字的字符串 ​​s​​​ ,用以表示一个 ​​IP​​​ 地址,返回所有可能的有效 ​​IP​​​ 地址,这些地址可以通过在 ​​s​​​ 中插入 ​​'.'​​​ 来形成。你 不能 重新排序或删除 ​​s​​ 中的任何数字。你可以按 任何 顺序返回答案。

示例 1:

输入:s = "25525511135"

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

示例 2:

输入:s = "0000"

输出:["0.0.0.0"]

示例 3:

输入:s = "101023"

输出:["1.0.10.23","1.0.102.3","10.1.0.23","10.10.2.3","101.0.2.3"]

提示:

  • 【面试高频题】难度 2/5,回溯算法经典运用_Java
  • ​s​​ 仅由数字组成

回溯算法

和 ​​131. 分割回文串​​ 一样,同样是一道求所有方案的题目,只能是没有太多优化的「爆搜」做法。

设计递归函数为 ​​void dfs(int idx, int n, List<Integer> cur)​​​,其中 ​​idx​​​ 和 ​​n​​​ 分别代表当前处理字符串 ​​s​​​ 的哪个位置,以及字符串 ​​s​​​ 的总长度,而 ​​cur​​​ 的则是代表子串 【面试高频题】难度 2/5,回溯算法经典运用_后端_02

用题目样例 ​​s = "25525511135"​​​ 作为

标签:cur,idx,int,ans,dfs,面试,str,回溯,高频
From: https://blog.51cto.com/acoier/5927377

相关文章

  • 2022.12.09深圳大头兄弟面试记录
    大头兄弟2022/12/9没回答好的问题:1px问题算法-->动态规划-->n个台阶回流和重绘父子组件的生命周期-->子组件的mount执行在父组件的mount之前diff算法Arr......
  • 小林笔记【面试】
    小林笔记【面试】​​前言​​​​推荐​​​​小林笔记【面试】​​​​最后​​推荐​​https://xiaolincoding.com/​​小林笔记【面试】​​操作系统笔记【面试】​​​......
  • iOS面试题及答案大总结
    1.写一个NSString类的实现+(id)initWithCString:(c*****tchar*)nullTerminatedCStringencoding:(NSStringEncoding)encoding;+(id)stringWithCString:(c*****tch......
  • Docker 面试题
    Docker常见面试题NamespaceCgroupsNamespaceDocker容器这个听起来玄而又玄的概念,实际上是在创建容器进程时,指定了这个进程所需要启用的一组Namespace参数。这样,......
  • #yyds干货盘点# LeetCode程序员面试金典:分割链表
    题目:给你一个链表的头节点 head​ 和一个特定值 x​ ,请你对链表进行分隔,使得所有 小于 x​ 的节点都出现在 大于或等于 x 的节点之前。你不需要 保留 每个分区......
  • Zookeeper面试题整理含答案
     Zookeeper面试题整理含答案zookeeper是什么?zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是googlechubby的开源实现,是hadoop和hbase的重要组件......
  • 第二章:10道C/C++经典面试题
    面试题11:设置地址为0x67a9的整型变量的值为0xaa66int*ptr;ptr=(int*)0x67a9;*ptr=0xaa66;说明:这道题就是强制类型转换的典型例子,无论在什么平台地址长度和整型数据......
  • 回溯算法_全排列_元素重复_字典去重法
    '示例1:'输入:nums=[1,1,2]'输出:[[1,1,2],[1,2,1],[2,1,1]]'示例2:'输入:nums=[1,2,3]'输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]Pub......
  • 面试题之如何实现AOP,项目哪些地方用到了AOP
    如何实现AOP,项目哪些地方用到了AOP利用动态代理来实现AOP,比如JDK动态代理或Cglib动态代理,利用动态代理技术,可以针对某个类生成代理对象,当调用代理对象的某个方法时,可以任......
  • java基础题目(面试有可能出现)
    1、面向对象(OO)的优点A.与人类的思维习惯一致B.信息隐藏,提高了程序的可维护性和安全性C.提高了程序的可重用行2.通常什么情况下使用数组?使用数组的好处是什么?当需要储存或......