当前位置: 首页 > news >正文

智能建网站源码屋整站源码

智能建网站,源码屋整站源码,学it什么培训机构好,怎样把产品放到网上销售文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:参照【算法与数据结构】131、LeetCode分割回文串的思路,需要将IP字符串进行分割&#xff0…

文章目录

  • 一、题目
  • 二、解法
  • 三、完整代码

所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。

一、题目

在这里插入图片描述

二、解法

  思路分析:参照【算法与数据结构】131、LeetCode分割回文串的思路,需要将IP字符串进行分割,同时要对分割字符串的合法性进行判断。IP字符串一共有四个子串,前三个子串在for循环中找到,最后咋终止条件中判断第四个子串是否合法,如果合法则加入结果数组。
  程序如下

class Solution {
private:vector<string> result;int PointNum = 0;bool isValid(const string& s, int start, int end) {if (start > end) return false;	// start>end的数字不合法if (s[start] == '0' && start!=end) return false;	// 0开头的数字不合法		int num = 0;for (int i = start; i <= end; i++) {if (s[i] < '0' || s[i]>'9') return false;num = num * 10 + (s[i] - '0');if (num > 255) return false;}return true;}void backtracking(string& s, int startIndex) {if (PointNum == 3) {if(isValid(s, startIndex, s.size()-1)) result.push_back(s);	// 判断最后一个子串是否合法,如果合法直接加入结果数组	return;}for (int i = startIndex; i < s.size(); i++) { if (isValid(s, startIndex, i)) {	// 判断子串是否合法s.insert(s.begin() + i + 1, '.');	// 插入分隔符PointNum++;backtracking(s, i + 2);			// 递归PointNum--;s.erase(s.begin() + i + 1);	// 回溯}else break;			}}
public:vector<string> restoreIpAddresses(string s) {backtracking(s, 0);return result;}
};

复杂度分析:

  • 时间复杂度: O ( 3 4 ) O(3^4) O(34), IP地址一共包含四个子串,相当于递归的深度,每个子串有三种分割方式,因此最终时间复杂度为 O ( 3 4 ) O(3^4) O(34)
  • 空间复杂度: O ( n ) O(n) O(n)

三、完整代码

# include <iostream>
# include <string>
# include <vector>
using namespace std;class Solution {
private:vector<string> result;int PointNum = 0;bool isValid(const string& s, int start, int end) {if (start > end) return false;	// start>end的数字不合法if (s[start] == '0' && start!=end) return false;	// 0开头的数字不合法		int num = 0;for (int i = start; i <= end; i++) {if (s[i] < '0' || s[i]>'9') return false;num = num * 10 + (s[i] - '0');if (num > 255) return false;}return true;}void backtracking(string& s, int startIndex) {if (PointNum == 3) {if(isValid(s, startIndex, s.size()-1)) result.push_back(s);	// 判断最后一个子串是否合法,如果合法直接加入结果数组	return;}for (int i = startIndex; i < s.size(); i++) { if (isValid(s, startIndex, i)) {	// 判断子串是否合法s.insert(s.begin() + i + 1, '.');	// 插入分隔符PointNum++;backtracking(s, i + 2);			// 递归PointNum--;s.erase(s.begin() + i + 1);	// 回溯}else break;			}}
public:vector<string> restoreIpAddresses(string s) {backtracking(s, 0);return result;}
};int main() {Solution s1;string s = "25525511135";vector<string> result = s1.restoreIpAddresses(s);for (vector<string>::iterator jt = result.begin(); jt != result.end(); jt++) {cout << *jt << endl;}cout << endl;system("pause");return 0;
}

end

http://www.yayakq.cn/news/266869/

相关文章:

  • 网络公司做网站价格前十强排名家装公司
  • 营销型网站设计价格wordpress滑动登录
  • 青岛手机网站建设电话可以做软文的网站
  • 江西城开建设集团有限公司网站导航类模板wordpress
  • 可以做网站吗临清网站优化
  • 如何进行网站的资源建设wordpress 卢松松主题
  • 给女朋友做的网站网站开发工具简介
  • 网站开发前如何配置电脑万词优化
  • 网站底部导航菜单佛山网站建设开发
  • 深圳网站优讳化网络服务商在哪里找
  • 定制开发电商网站建设公司短视频营销概念
  • thinkcmf 做企业网站正规的网页制作
  • 看汽车哪个网站好微信网站的优势
  • 国内网站域名手机网站推广法
  • 外贸代理公司福州网站搜索引擎优化
  • 中山网站建设文化价格网站怎么办
  • 做最精彩的绳艺网站飞飞影视做的网站
  • 网站建设课设心得有啥方法下载wordpress主题
  • 如何建设公司门户网站企业设备管理系统
  • 同一个公司可以做几个网站吗龙之向导官网
  • 实战网站开发编程在线
  • 上海网站制作团队wordpress中国服务器
  • 网站制作品牌公司深圳搭建网站公司
  • 垂直网站内容建设旅游网站图片
  • 上海自助建站软件建设部监理师网站
  • 网站建设2000元河北百度seo软件
  • 如何做网站淘客推广网站标题在哪里设置
  • 做气体检测仪的网站在线设计平台发展规划
  • 遵义做什么网站好wordpress源码修改
  • 建设网站遇到的问题网站制作:网推宝|百度