LeetCode-93-复原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 地址。
给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 ‘.’ 来形成。你 不能 重新排序或删除 s 中的任何数字。你可以按 任何 顺序返回答案。

题目链接:LeetCode-93-复原IP地址

解题思路:贪心算法

代码实现:下面这种效率并不高,可以尝试使用 StringBuilder

class Solution {List<String> res = new ArrayList<>();public List<String> restoreIpAddresses(String s) {if (s.length() > 12 || s.length() < 4){return res;}backTracking(s,0,0);return res;}public void backTracking(String s, int startIndex, int pointSum){if (pointSum > 3){// 当字符串中的 . 大于3个时,结束递归,提前剪枝return;}if (pointSum==3){if (isNumber(s, startIndex, s.length()-1)){res.add(new String(s));return;}}for (int i = startIndex; i < s.length(); i++) {if (isNumber(s,startIndex,i)){s = s.substring(0,i+1) + "." + s.substring(i+1);System.out.println(s);backTracking(s, i+2, pointSum+1);s = s.substring(0,i+1) + s.substring(i+2);}else {continue;}}}// 判断s.index[start, end],前闭后闭的区间是否是合法数字public boolean isNumber(String s, int start, int end){if (end < start){return false;}int num = 0;if (s.charAt(start) == '0' && end != start){return false;}for (int i = start; i <= end ; i++) {// 第一位也不能是 0,如果只有一位可以是0,如果后面还有就不能是 0num = num *10 + s.charAt(i)-'0';// 获取[start, end]值}if (num<0 || num > 255){return false;}else {return true;}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/74651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL主从分离读写复制

在高负载的生产环境里&#xff0c;把数据库进行读写分离&#xff0c;能显著提高系统的性能。下面对MySQL的进行读写分离。 试验环境 A机&#xff1a;IP:192.168.0.1 mysql版本&#xff1a;mysql-5.6.4,主数据服务器&#xff08;只写操作&#xff09; B机&#xff1a;IP:192.…

网管实战⑼:配置华为S5720交换机

配置好汇聚交换机后&#xff0c;需要根据单位情况配置具体的接入交换机。 自从2019年12月底配置好交换机后&#xff0c;基本上都没有怎么操作交换机了。那时候使用的是H3C交换机&#xff0c;主要是H3C S7706、H3C S5120、H3C S5130、H3C S5500、H3C S3600等型号的交换机&#x…

c3p0、dbcp、proxool、BoneCP比较

1.1 测试环境: 操作系统&#xff1a;windows xp sp3数据库&#xff1a;mysql 5.1 1.2 测试条件&#xff1a; initialSize30; maxSize200; minSize30; 其余参数为默认值&#xff1b; 1.3 测试代码&#xff1a; 利用JAVA代码模拟多线程对这三种数据库连接池进行测试&#xf…

Kafka3.0.0版本——消费者(自动提交 offset)

目录 一、自动提交offset的相关参数二、消费者&#xff08;自动提交 offset&#xff09;代码示例 一、自动提交offset的相关参数 官网文档 参数解释 参数描述enable.auto.commi默认值为 true&#xff0c;消费者会自动周期性地向服务器提交偏移量。auto.commit.interval.ms如果…

Ubuntu终端指令

目录 目录 一、基本指令 1.命令行提示符 2.切换用户 3.修改密码 4.查看当前目录下的文件 5.修改文件权限---chmod 6.cd 切换路径 7.touch 8.cat 9.echo 10.mkdir 11. rm/rmdir 二、在线下载软件 1.更新软件源 2.更新软件列表 3.下载软件 三、离线安装软件 1. …

Day61:代码随想录结束打卡~

大体感受 为期60的算法训练营结束了&#xff0c;这钱其实挺值的&#xff0c;人就是这样&#xff0c;一旦你有点付出才会懂得珍惜。 最大的收获就是见识到了人有决心有多可怕&#xff0c;这60天如果让我自己刷&#xff0c;其实根本坚持不了几天&#xff0c;但是现在证明我确实坚…

大数据(八):Pandas的基础应用详解(五)

专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对…

车载软件架构——基础软件供应商开发工具链(一)

车载软件架构——基础软件供应商&开发工具链(一) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己…

Qt包含文件不存在问题解决 QNetworkAccessManager

这里用到了Qt的网络模块&#xff0c;在.pro中添加了 QT network 但是添加 #include <QNetworkAccessManager> 会报错说找不到&#xff0c;可以通过在项目上右键执行qmake后&#xff0c;直接#include <QNetworkAccessManager>就不会报错了&#xff1a;

在h5中使用 JavaScript 和 HTML DOM 对表格的表头进行排序的解决方案

在 HTML5 (h5) 中&#xff0c;可以使用 JavaScript 和 HTML DOM 来对表格的表头进行排序。以下是一个简单的示例&#xff0c;使用纯 JavaScript 实现&#xff1a; 首先&#xff0c;在 HTML 中创建一个带有表头的表格&#xff1a; <table id"myTable"><the…

P1294 高手去散步

高手去散步 - 洛谷 题解&#xff1a; 可能走到一半就走完了&#xff0c;注意递归结束条件 #include<bits/stdc.h> using namespace std; const int N110; int n,m,flag; int e[N],ne[N],h[N],w[N],idx; int st[N]; int ans-1e13; void add(int a,int b,int c) {e[idx]…

【Linux之进程间通信】09.有名管道和无名管道(补充)

有名管道最大的特点&#xff08;为什么要有无名管道和有名管道&#xff1f;&#xff09; 有名管道是真实存在的一个特殊文件&#xff0c;所以当进程退出后&#xff0c;管道文件还在&#xff0c;有名管道文件将继续保存在文件系统中以便以后使用&#xff0c;其他进程仍然可以读写…

MLC-LLM 部署RWKV World系列模型实战(3B模型Mac M2解码可达26tokens/s)

0x0. 前言 我的 ChatRWKV 学习笔记和使用指南 这篇文章是学习RWKV的第一步&#xff0c;然后学习了一下之后决定自己应该做一些什么。所以就在RWKV社区看到了这个将RWKV World系列模型通过MLC-LLM部署在各种硬件平台的需求&#xff0c;然后我就开始了解MLC-LLM的编译部署流程和…

搭建自己的OCR服务,第一步:选择合适的开源OCR项目

一、OCR是什么&#xff1f; 光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;是指对文本资料的图像文件进行分析识别处理&#xff0c;获取文字及版面信息的过程。 亦即将图像中的文字进行识别&#xff0c;并以文本的形式返回。 二、OCR的基本流程 1…

dubbo和feign那个效率高呢?

Dubbo 和 Feign 都是常用的远程服务调用框架&#xff0c;它们在不同的应用场景下具有各自的优势。效率高与否取决于具体的使用情况和需求。 Dubbo&#xff1a;Dubbo 是一款高性能的分布式服务框架&#xff0c;主要面向大规模的微服务架构。Dubbo 在性能方面表现出色&#xff0c…

实战教程:如何将自己的Python包发布到PyPI上

1. PyPi的用途 Python中我们经常会用到第三方的包&#xff0c;默认情况下&#xff0c;用到的第三方工具包基本都是从Pypi.org里面下载。 我们举个栗子: 如果你希望用Python实现一个金融量化分析工具&#xff0c;目前比较好用的金融数据来源是 Yahoo 和 Google。你可能需要读取…

Electron 两个线程

Electron&#xff1a;它允许使用最初为Web应用程序开发的前端和后端组件开发桌面GUI应用程序&#xff1a;后端的Node.js运行时和前端的Chromium。 每个Electron应用都有两个线程&#xff1a;一个是主线程&#xff08;处理应用窗口和启动&#xff09;&#xff0c;另一个是渲染线…

3dMax全球学习资源、资源文件和教程 !

此样例教育教程和学习资源旨在提供使用Autodesk 3ds Max时的计划知识和培训、正确的工作流、流程管理和最佳实践。 您在Autodesk三维设计领域的职业生涯 有关使用3ds Max和Maya在计算机图形领域开始职业生涯的提示&#xff08;包括新的3ds Max和Maya介绍教程&#xff0c;以复…

STL容器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、导入二、使用步骤 1.引入库2.读入数据总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a;随着人工智能的不断发…

主频计算-架构真题(二十三)

某文件系统采用多级索引结构&#xff0c;若磁块大小为4K字节&#xff0c;每个块号需占4个字节&#xff0c;那么采用二级索引结构时的文件最大长度可占用&#xff08;&#xff09;个物理块。 1、1024 2、1024*1024 3、2048*2048 4、4096*4096 答案&#xff1a;B 解析&…