力扣算法题用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&comma; n)

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

力扣算法题—147Insertion&lowbar;Sort&lowbar;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&plus;&plus;traits——STL源码剖析

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

Linux-&lpar;touch&comma;cat&comma;nl&comma;more&vert;less&comma;head&vert;tail&rpar;

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
算法与数据结构它们分别涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何具体存储。例如,数组的连续存储,链表的动态分配节点,树和图的邻接矩阵或邻接表表示等。 基本操作:针对每种数据结构,定义了一系列基本的操作,包括但不限于插入、删除、查找、更新、遍历等,并分析这些操作的时间复杂度和空间复杂度。 算法算法设计:研究如何将解决问的步骤形式化为一系列指令,使得计算机可以执行以求解问算法特性:包括输入、输出、有穷性、确定性和可行性。即一个有效的算法必须能在有限步骤内结束,并且对于给定的输入产生唯一的确定输出。 算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法,分支限界法等。 算法分析:通过数学方法分析算法的时间复杂度(运行时间随数据规模增长的速度)和空间复杂度(所需内存大小)来评估其效率。 学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值