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

旅行社网站建设规划电脑手机一体网站

旅行社网站建设规划,电脑手机一体网站,wordpress tag__not_in,国家企业信息公示系统官网(全国)划分字母区间 1.1 题目描述 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。例如,字符串 “ababcc” 能够被分为 [“abab”, “cc”],但类似 [“aba”, “bcc”] 或 [“ab”, “ab”, “cc”] 的…

划分字母区间

1.1 题目描述

  给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。例如,字符串 “ababcc” 能够被分为 [“abab”, “cc”],但类似 [“aba”, “bcc”] 或 [“ab”, “ab”, “cc”] 的划分是非法的。
  注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。

1.2 示例

1.2.1 示例1

输入:s = “ababcbacadefegdehijhklij”
输出:[9,7,8]
解释: 划分结果为"ababcbaca"、“defegde”、“hijhklij” 。 每个字母最多出现在一个片段中。 像 “ababcbacadefegde”, “hijhklij” 这样的划分是错误的,因为划分的片段数较少。

1.2.2 示例2

输入:s = “eccbbbbdec”
输出:[10]

1.3 提示

  • 1 <= s.length <= 500
  • s 仅由小写英文字母组成

1.4 思路:

  首先,通过对题目的分析,可以将题目理解为需要把字符串s进行若干份分割,但是划分的每一个字符串里面出现的字符只能属于该字符串,不能出现在划分的其他字符串里面,当然最简单的划分就是划分为一个字符串,但是不满足划分的字符串数尽可能多的条件。
  因此可以通过遍历字符串,判断每个字符在s中开始出现的位置和最后出现的位置,如果该字符只出现过一次,则它的开始位置和结束位置相同,最后就会得到一个长度为n(n表示不同字符的个数)的2维数组。而问题的计算可以转化为对这些区间合并的计算。
  比如字符串s="ababcbacadefegdehijhklij",每个字符的区间可以划分为a=[0,8],b=[1,5],c=[4,7],d=[9,14],e=[10,15],f=[11,11],g=[13,13],h=[16,19],i=[17,22],j=[18,23],k=[20,20],l=[21,21]。得到这个区间之后就可以开始进行合并,a的区间是[0,8],因为b在a的区间之内,c也在a的区间内,d不在a的区间内,所以第一个区间就是[0,8],第二个区间从d=[9,14]开始,e的右区间在d里面,左区间在d区间之外,因此d和e的合并区间是[9,15],以此类推,f和g也在第二个区间内,h不在第二个区间内,于是得到第二个区间[9,15],同理可以得到第三个区间[16,23]。最后三个区间分别是[0,8][9,15][16,23],字符长度为9,7,8。

1.5 代码

#include<bits/stdc++.h>
using namespace std;
vector<int> partitionLabels(string s) { map<char,vector<int>> my_map;vector<int> results;for(int i=0;i<s.length();i++){vector<int> indexs = my_map[s[i]];if(indexs.size()==0){indexs.push_back(i);indexs.push_back(i);}else{indexs[1] = i;}my_map[s[i]] = indexs;}int start=0;int end=0;for(auto m=my_map.begin();m!=my_map.end();m++){cout<<m->first<<" "<<m->second[0]<<"-"<<m->second[1]<<endl;}for(int i=0;i<s.size();i++){vector<int> indexs = my_map[s[i]];if(indexs[0]>=start&&indexs[0]<=end){if(end<indexs[1]){end = indexs[1];}}else if(indexs[0]>start){results.push_back(end-start+1);start = indexs[0];end = indexs[1];}else{cout<<"err"<<endl;}}results.push_back(end-start+1);return results;
}
int main(){string s = "ababcbacadefegdehijhklij";vector<int> results = partitionLabels(s);cout<<endl<<"结果:"<<endl;for(int i=0;i<results.size();i++){cout<<results[i]<<" ";}return 0;
}

运行结果
在这里插入图片描述

  当然解决该类问题还有很多方法,该方法只是比较简单和方便理解的一种,如果为了提高性能,大家还可以进行另外的分析。


文章转载自:

http://QPH3vp2C.npxht.cn
http://5X7jO9ar.npxht.cn
http://LMvHCB8Y.npxht.cn
http://2pP5sirQ.npxht.cn
http://BZVCm9P3.npxht.cn
http://ILheQDrm.npxht.cn
http://FdgcxcF2.npxht.cn
http://k0Al5Wg7.npxht.cn
http://63LPWXIp.npxht.cn
http://6XBXzAqs.npxht.cn
http://q7NKOSjN.npxht.cn
http://JdKTkSs5.npxht.cn
http://cQOjTY0o.npxht.cn
http://Ih6bx2NX.npxht.cn
http://kYxCX12u.npxht.cn
http://D7pFHTTk.npxht.cn
http://NA4GmX7Q.npxht.cn
http://1KsCHehR.npxht.cn
http://1djnSUKp.npxht.cn
http://ITKRWm4s.npxht.cn
http://3PZ41Fsg.npxht.cn
http://AXXOqBLP.npxht.cn
http://pkCPmSuD.npxht.cn
http://18Y9EeI1.npxht.cn
http://veCekfas.npxht.cn
http://NUxVVSdK.npxht.cn
http://bBiGJJQV.npxht.cn
http://e9xkP14d.npxht.cn
http://LEltTjND.npxht.cn
http://CA777iTj.npxht.cn
http://www.dtcms.com/wzjs/625301.html

相关文章:

  • 旅游网站栏目建设网站排名标准
  • 食品网站的网页设计宁波专业网站制作设计
  • 佛山自助建站系统响应式网站开发技术
  • 企业网站要更新文章吗wordpress justnews
  • 建设企业网站需注意什么大型网站有哪些用php做的
  • 高校二级网站建设要求自助建站和网站开发的利弊
  • 做网站页面的软件记事本做网站背景色怎么弄
  • 通州设计网站建设广西房管局官网
  • 如何让自己做的网页有网站国内ui设计培训
  • 做百度企业网站有什么好处wordpress图片管理
  • 经验丰富的网站制作公司青岛栈桥门票多少钱一张
  • 哪个网站可以接工程做网站的相对路径
  • 企业产品微网站收费吗wordpress 表介绍
  • 网页和网站区别开一个淘宝店铺流程
  • 外贸公司网站如何免费推广市场营销专业就业方向
  • 网站设计如何做国际会议网站建设
  • 做电影网站的软件设计云网站
  • 网站建设需要做哪些工作wordpress4.8.3中文
  • 阿里巴巴网站建设要多少钱wordpress 恢复初始化
  • 电商网站开发设计文档wordpress图片本地化
  • 网站有情链接怎么做谷歌网页截图快捷键
  • 怎么做团购网站建设银行激活网站
  • 做网站都用什么软件网站建设 目标
  • 网络推广做哪个网站比较好怎么做网页代理
  • 网页设计与网站建设文档莱芜雪野湖风景区
  • 做网站哪家好 青岛免费下载中国移动app
  • 永修县建设局网站线下销售怎么做推广
  • 注册网站的免费网址网站编程好学吗
  • 程序员帮忙做放贷网站技术优化seo
  • 宁乡网站建设在哪做公司网站需要什么手续