当前位置:网站首页>力扣练习——37 复原IP地址
力扣练习——37 复原IP地址
2022-08-02 04:18:00 【qq_43403657】
37 复原IP地址
1.问题描述
给定一个只包含数字的字符串,复原它(在中间插入点号)并返回所有可能的 IP 地址格式,输出可能的格式的数量。
有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间)组成,整数之间用 ‘.’ 分隔。
示例:
输入: “25525511135”
输出: 2
说明:因为可能的IP地址包括:[“255.255.11.135”, “255.255.111.35”]
2.输入说明
输入一个只包含数字的字符串
3.输出说明
输出一个整数
4.范例
输入
25525511135
输出
2
5.代码
#include <iostream>
#include <queue>
#include <cstdlib>
#include <string>
#include<set>
using namespace std;
vector<string> ans;
vector<string> path; // 保存ip地址的每一个段
int n;
//检查IP段是否合法
bool check(string num) {
// 检测前导0
if (num.size() > 1 && num[0] == '0')
return false;
//stoi 实现string to integer
return stoi(num) <= 255; // 每个部分均小于等于255
}
void backtracking(string s, int start, int cnt) {
if (cnt == 4 && start == n) {
if (start < n) return; // 已经有四段了,但数字没有用完,剪枝
ans.push_back(path[0] + '.' + path[1] + '.' + path[2] + '.' + path[3]);
return;
}
for (int len = 1; len <= 3 && start + len - 1 < n; len++) {
// 每个数字部分位数 1-3
string num = s.substr(start, len);
if (check(num)) {
path.push_back(num);
backtracking(s, start + len, cnt + 1);
path.pop_back();
}
}
}
vector<string> restoreIpAddresses(string s)
{
n = s.size();
if (n > 12) return ans; // 最多12位
backtracking(s, 0, 0);
return ans;
}
int main()
{
vector<string>res;
string s;
cin >> s;
res = restoreIpAddresses(s);
cout << res.size() << endl;
return 0;
}
边栏推荐
猜你喜欢

爬虫_爬取wasde月度供需平衡表(实例)

JDBC再回顾

不会多线程还想进 BAT?精选 19 道多线程面试题,有答案边看边学

The line chart with square PyQt5_pyqtgraph mouse

张成分析(spanning test):portfolio_analysis.Spanning_test

如何评价最近爆红的FastAPI?

ESP32-C5 简介:乐鑫首款双频 Wi-Fi 6 MCU

Arduino框架下ESP32重启原因串口信息输出示例

【数字IC手撕代码】Verilog固定优先级仲裁器|题目|原理|设计|仿真

Arduino框架下STM32F1/F4系列HID模式程序烧录教程
随机推荐
EasyCVR视频广场切换通道,视频播放协议异常的问题修复
nr部分计算
Scala basics [common method supplement, pattern matching]
学内核之四:关于内核与硬件的衔接
区间和 离散化
不会多线程还想进 BAT?精选 19 道多线程面试题,有答案边看边学
批量--10---根据set数拆分文件
【STM32】ADC采集光敏数据(不看库函数手册进行配置)
数据复制系统设计(3)-配置新的从节点及故障切换
分布式系统的一致性与共识(1)-综述
高等数学(第七版)同济大学 总习题三(后10题) 个人解答
力扣练习——40 区间和的个数
JDBC再回顾
What if some fields don't want to be serialized?
Deep blue college - handwritten VIO operations - the first chapter
直播 | 7.30 ApacheCon Asia 2022 IOT/IIOT专题,IoTDB PMC 乔嘉林担任出品人
安装部署 Kubernetes 仪表板(Dashboard)
论人生自动化
复制延迟案例(3)-单调读
【每日一题】1374. 生成每种字符都是奇数个的字符串