力扣刷题 DAY_67 回溯
Leetcode93
链接:力扣 。
题目:
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
有效的 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。
例如:"0.1.2.201" 和 "192.168.1.1" 是 有效的 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效的 IP 地址。
示例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"]
参考代码:
class Solution {
public:vector<string> result;string ip;bool is_valid(string &s, int left, int right) {if (left > right) {return false;}if (s[left] == '0' && left != right) {return false;}string str = s.substr(left, right - left + 1);long num = atol(str.c_str());if (num > 255) {return false;}else {return true;}}void dfs(string &s, int index, int pointNum) {if (pointNum > 3 || index >= s.size()) {return;}if (pointNum == 3) {if (is_valid(s, index, s.size() - 1)) {ip = ip + s.substr(index, s.size() - index);result.push_back(ip);}}for (int i = index; i < s.size(); i++) {if (is_valid(s, index, i)) {string tmp = ip;ip = ip + s.substr(index, i - index + 1) + string(1, '.');dfs(s, i + 1, pointNum + 1);ip = tmp;}}}vector<string> restoreIpAddresses(string s) {dfs(s, 0, 0);return result;}
};
力扣刷题 DAY_67 回溯相关推荐
- 力扣刷题记录-回溯算法相关题目
首先介绍一下回溯算法 回溯通常在递归函数中体现,本质也是一种暴力的搜索方法,但可以解决一些用for循环暴力解决不了的问题,其应用有: 1.组合问题: 例:1 2 3 4这些数中找出组合为2的组合,有1 ...
- 力扣刷题pdf(java版本,内含暗黑版和光明版),都在这里了
BAT大佬力扣刷题pdf,都在这里了! 相信很多小伙伴刷题的时候面对力扣上近两千道题目,感觉无从下手! 我找了很久,今天终于让找到了Java版leetcode算法题解笔记,强烈建议先按照本篇介绍pd ...
- 教你创建电脑、手机同步的markdown云笔记--力扣刷题力荐!
开篇先致歉 其他不谈,开篇必须先给各位读者道个歉,年后工作上比较忙,加上最近闲暇的时间都用来在力扣上刷算法题了,导致公众号断更有些严重啊.再加上年后将健身减重提上了日程,时间上就更显的捉襟见肘了. 不 ...
- 《剑指Offer》力扣刷题笔记(03-10)
<剑指Offer>力扣刷题笔记(03-10) 最近确实有点闲,想在进组搬砖之前找点有意义的事干,于是,就开始刷<剑指Offer>.<程序员面试金典>等书上的题目,也 ...
- 力扣刷题之二叉树的层序遍历
Welcome to you, 每日一刷系列 二叉树的层序遍历 二叉树的层序遍历II 二叉树的右视图 ...
- 『力扣刷题』5275_找出井字棋的获胜者 解题代码
LeetCode-cn 力扣刷题 LeetCode-cn力扣刷题目录 165周赛 5275_找出井字棋的获胜者 * 5275. 找出井字棋的获胜者 显示英文描述* 用户通过次数0* 用户尝试次数0* ...
- 『力扣刷题』5276_不浪费原料的汉堡制作方案 解题代码
LeetCode-cn 力扣刷题 LeetCode-cn力扣刷题目录 165周赛 5276_不浪费原料的汉堡制作方案 * 5276. 不浪费原料的汉堡制作方案 显示英文描述* 用户通过次数212* 用 ...
- 『力扣刷题』5238_找出给定方程的正整数解 解题代码
html: embed_local_images: true embed_svg: true offline: true toc: undefined print_background: false ...
- 力扣刷题全局变量WA,局部变量AC的问题
力扣刷题全局变量WA,局部变量AC问题 题目 原因 题目 golang力扣leetcode 1219.黄金矿工 原因 今天在刷题的时候,遇到一个现象,本地跑测试全部通过,一提交就错错错,非常离谱 然后 ...
- 力扣刷题-前k个高频元素
力扣刷题-前k个高频元素 题目: 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素.你可以按 任意顺序 返回答案. 示例 1: 输入: nums = [1,1,1,2 ...
最新文章
- mysql cronjob 备份_mysql 数据备份 crontab
- 怎样在bug管理上节省时间
- JVM运行时数据区---方法区(前言)
- ClearCanvas DICOM 开发系列 一
- From 《visual C++ 6.0开发工具与调试》
- python介绍和用途-python中模块的介绍与使用
- 线程使用二——线程池
- Hazelcast入门指南第1部分
- Linux伪终端怎么退出,什么是linux里的终端和伪终端
- 曾经拒绝马云的实习生 他说要开启云工作时代
- 关于java mail 发邮件的问题总结(转)
- jQuery第一个孩子“这个”
- 一个简单的人物图片相似对比程序
- php图片转字节数组中,使用字节数组将图像上传到服务器,在flex 4.5 air中上传php...
- sql查询、删除重复相同数据的语句或只保留一条数据
- 安全浏览器版本过低?该升级浏览器内核了
- 表格特性:表格实现的边框、表格特性、边框的颜色、表格的标题
- 微型计算机显卡,“智能”显卡 华硕ROG Matrix显卡赏析
- C#邮件过滤系统(论文+可执行程序+源码+外文翻译+程序操作演示录像)
- 金蝶软件界面文字全部变为乱码解决办法