力扣算法题用c语言实现,力扣算法题—093复原IP地址

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

示例:

输入: "25525511135"

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

//暴力搜索

//一共分为4组

//每组数据不超过三位

class Solution {

public:

vector restoreIpAddresses(string s) {

vectorres;

for(int a = ; a

for(int b=;b

for(int c =;c

for(int d=;d

if (a + b + c + d == s.size()) {

int A = stoi(s.substr(, a));//取子串并转为数组

int B = stoi(s.substr(a, b));

int C = stoi(s.substr(a+b, c));

int D = stoi(s.substr(a+b+c, d));

if (A <= && B <= && C <= && D <= ) {

string str = to_string(A) + "." + to_string(B) + "." + to_string(C) + "." + to_string(D);

if (str.size() == (s.size() + ))//去除010这种组合

res.push_back(str);

}

}

return res;

}

};

//使用递归

class Solution {

public:

vector restoreIpAddresses(string s) {

vectorres;

helper(s, , "",res);

return res;

}

void helper(string s, int n, string out, vector&res) {

if (n == ) {

if (s.empty())res.push_back(out);//全部组合4组IP完毕

}

else {

for (int k = ; k < ; ++k) {

if (s.size() < k)break;

int val = stoi(s.substr(, k));//取子串转化为数字

if (val > || k != to_string(val).size())//当数字大于255或出现010,不满足

continue;

helper(s.substr(k), n + , out + s.substr(, k) + (n == ? "" : "."), res);

}

}

}

};

第93题:复原IP地址

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

leetcode刷题-93复原IP地址

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

力扣算法题—069x的平方根

实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 示例 ...

力扣算法题—060第K个排列

给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列. 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: "123" "132&qu ...

力扣算法题—050计算pow(x, n)

#include "000库函数.h" //使用折半算法 牛逼算法 class Solution { public: double myPow(double x, int n) { ...

力扣算法题—147Insertion_Sort_List

Sort a linked list using insertion sort. A graphical example of insertion sort. The partial sorted l ...

力扣算法题—460LFU缓存

[题目描述] 设计并实现最不经常使用(LFU)缓存的数据结构.它应该支持以下操作:get 和 put. get(key) - 如果键存在于缓存中,则获取键的值(总是正数),否则返回 -1. put(k ...

力扣算法题—079单词搜索【DFS】

给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格.同一个单元格内的字母不允许被重复使用. ...

力扣算法题—052N皇后问题2

跟前面的N皇后问题没区别,还更简单 #include "000库函数.h" //使用回溯法 class Solution { public: int totalNQueens(in ...

随机推荐

PHP图形操作之生成图像验证码

简单的验证码其实就是在图片中输出了几个字符,通过imagestring函数就能实现. 但是在处理上,为了使验证码更加的安全,防止其他程序自动识别,因此常常需要对验证码进行一些干扰处理,通常会采用绘制一 ...

【processing】小代码5

3D void setup() { size(,,P3D); } void draw() { background(); lights(); noStroke(); translate(,,-); r ...

IOS网络编程之请求内容

资料均来自互联网,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 人魔七七:http://www.cnblogs.com/qiqibo/ 一个http请求只要由三 ...

ExtJS学习之路第八步:Window组件

一个专门Panel用作程序窗口.默认的,Window可以是浮动的(floated).可缩放(resizable)以及可拖动的(draggable).Window能够被最大化适应可视窗口,(restor ...

Linux源代码编译安装tree命令

wget ftp://mama.indstate.edu/linux/tree/tree-1.6.0.tgz .tgz cd tree- make && make install

SpringMVC请求访问不到静态文件解决方式

如何你的DispatcherServlet拦截"*.do"这样的有后缀的URL,就不存在访问不到静态资源的问题. 如果你的DispatcherServlet拦截"/&qu ...

st-Spanning Tree

st-Spanning Tree time limit per test 4 seconds memory limit per test 256 megabytes input standard in ...

【noip模拟】最小点覆盖

Time Limit: 1000ms      Memory Limit: 128MB Description 最小点覆盖是指在二分图中,用最小的点集覆盖所有的边.当然,一个二分图的最小点覆盖可能有很 ...

C++traits——STL源码剖析

有时候我们希望知道迭代器所指的元素类型. 以迭代器所指声明对象: template void func_impl(Iterat ...

Linux-(touch,cat,nl,more|less,head|tail)

touch命令 1.命令格式: touch [选项]... 文件... 2.命令参数: -a   或--time=atime或--time=access或--time=use  只更改存取时间. -c ...

你可能感兴趣的:(力扣算法题用c语言实现)