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

浙江省网站备案时间公司财务记账软件

浙江省网站备案时间,公司财务记账软件,品牌logo设计公司,广州做网站海珠信科131. 分割回文串https://leetcode.cn/problems/palindrome-partitioning/https://leetcode.cn/problems/palindrome-partitioning/ 给你一个字符串 s#xff0c;请你将 s 分割成一些子串#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1#xff1a…131. 分割回文串https://leetcode.cn/problems/palindrome-partitioning/https://leetcode.cn/problems/palindrome-partitioning/ 给你一个字符串 s请你将 s 分割成一些子串使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1 输入s aab 输出[[a,a,b],[aa,b]]示例 2 输入s a 输出[[a]]提示 1 s.length 16s 仅由小写英文字母组成 DFS方案1初始化一个代表分割点的01数组然后对这个数组的状态使用dfs搜索。这个方案耗时长空间复杂度也不小。具体代码如下 class Solution { public:vectorvectorstring ans;bool cutoff[20] {false};//代表分割点的01数组bool check(string s)//判断回文串{string ss s;reverse(s.begin(),s.end());if(sss)return true;else return false;}void dfs(string s,int cur)//枚举每一个位置有在该点分割与不分割两种情况{if(cur s.size()){vectorstring temp;int i 0;while(true){string t;t.push_back(s[i]);i;while(!cutoff[i]){t.push_back(s[i]);i;}if(!check(t))return;else temp.push_back(t);if (i s.size())break;}ans.push_back(temp);return;}cutoff[cur] true;dfs(s,cur1);cutoff[cur] false;dfs(s,cur1);}vectorvectorstring partition(string s) {//为了整体代码和谐将首尾都设为分割cutoff[0] true;cutoff[s.size()] true;dfs(s,1);return ans;} }; DFS方案2从前到后直接枚举分割点。如下图 这个方案更快些具体差别在该方案能及时排除不可能选项而不是等上一个方案把所有可能情况全列出来然后对每个依次排除。代码具体如下 class Solution { public:vectorvectorstring ans;vectorstring temp;bool check(string s){string ss s;reverse(s.begin(),s.end());if(sss)return true;else return false;}void dfs(int startindex,const string s)//前者代表起始点{if(startindexs.size()){ans.push_back(temp);return;}for(int i startindex;is.size();i){string str s.substr(startindex,i-startindex 1);if(check(str)){temp.push_back(str);dfs(i1,s);temp.pop_back();}else continue;}}vectorvectorstring partition(string s) {dfs(0,s);return ans;} }; 顺便说一道几乎一样的题 93. 复原 IP 地址https://leetcode.cn/problems/restore-ip-addresses/ 有效 IP 地址 正好由四个整数每个整数位于 0 到 255 之间组成且不能含有前导 0整数之间用 . 分隔。 例如0.1.2.201 和 192.168.1.1 是 有效 IP 地址但是 0.011.255.245、192.168.1.312 和 192.1681.1 是 无效 IP 地址。 给定一个只包含数字的字符串 s 用以表示一个 IP 地址返回所有可能的有效 IP 地址这些地址可以通过在 s 中插入 . 来形成。你 不能 重新排序或删除 s 中的任何数字。你可以按 任何 顺序返回答案。 示例 1 输入s 25525511135 输出[255.255.11.135,255.255.111.35]示例 2 输入s 0000 输出[0.0.0.0]示例 3 输入s 101023 输出[1.0.10.23,1.0.102.3,10.1.0.23,10.10.2.3,101.0.2.3]提示 1 s.length 20s 仅由数字组成 思路几乎一致都是要求分割的字符串所有情况唯一不同的是这道题有些额外的条件但都很好解决具体代码如下 class Solution { public:vectorstring ans;vectorstring temp;inline int transform(string s)//字符串转数字{int t 0;int re 0;for(int i s.size()-1;i0;i--,t){re(s[i] - 0)*pow(10,t);}return re;}bool check(string s){string ss s;reverse(s.begin(),s.end());if(sss)return true;else return false;}void dfs(int startindex,const string s)//前者代表起始点{if(temp.size()4)//很明显的剪枝return;if(startindexs.size()temp.size()4){string str;for(int i 0;itemp.size();i){for(int j 0;jtemp[i].size();j){str.push_back(temp[i][j]);}str.push_back(.);}str.pop_back();ans.push_back(str);return;}for(int i startindex;is.size();i){string str s.substr(startindex,i-startindex 1);if((str.size()2str[0] 0)||str.size()3||transform(str)255)//由题得出的筛选条件continue;temp.push_back(str);dfs(i1,s);temp.pop_back();}}vectorstring restoreIpAddresses(string s) {dfs(0,s);return ans;} };
http://www.w-s-a.com/news/242607/

相关文章:

  • 怎么做外贸网站推广劳务公司网站怎么做
  • 滴答手表网站中铁建设集团有限公司招聘信息2021
  • 重庆富通科技有限公司网站新闻头条最新消息国家大事
  • 四字母net做网站怎么样企业代运营公司
  • 纪检网站建设方案wordpress首页静态页面
  • 网站右下角浮动效果如何做网站logo设计在线生成
  • 西宁哪里做网站婚纱摄影网站设计思路
  • 凡科用模板做网站网站导入页欣赏
  • 北京响应式网站建设公司十大小程序开发公司
  • dw网站开发删除wordpress主题底部
  • 织梦网站怎样做子域名高德导航怎么看街景地图
  • 宿州专业网站建设株洲网站建设优化
  • 自动生成海报的网站常州建网站公司
  • 网站刷流量对网站有影响吗站长工具欧美高清
  • 百度做网站优化多少钱一年罗庄网站建设
  • 手机网站 自适应屏幕h5网站有哪些
  • 北京企业建站技术临沂网站公众号建设
  • 域名和网站备案一样吗wordpress 封装 app
  • 婚纱摄影网站开题报告c2c模式是什么意思
  • 网站几种颜色wordpress水平菜单
  • php做网站的分站wordpress边下边看
  • 杭州建设实名制报备网站Wordpress外贸网站搭建公司
  • 山西云起时网站建设计算机网站开发实现总结
  • 一个网站做两个优化可以做吗永清网站建设
  • wordpress英文采集wordpress seo 链接
  • 进入建设银行的网站就打不了字工程建设标准化网站
  • 杭州网站推广大全网站建设演讲稿
  • 厦门网站的制作太仓专业网站建设
  • 天津公司网站建设公司哪家好在阿里巴巴国际网站上需要怎么做
  • 网站关键词seo推广公司哪家好无锡市无锡市住房和城乡建设局网站