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

seo建网站惠州百度推广优化排名

seo建网站,惠州百度推广优化排名,上海微信网站公司哪家好,怎么接网站建设的单子3597. 分割字符串 难度:中等 问题描述: 给你一个字符串 s,按照以下步骤将其分割为 互不相同的段 : 从下标 0 开始构建一个段。 逐字符扩展当前段,直到该段之前未曾出现过。 只要当前段是唯一的,就将其…

3597. 分割字符串

难度:中等

问题描述:

给你一个字符串 s,按照以下步骤将其分割为 互不相同的段 :

从下标 0 开始构建一个段。

逐字符扩展当前段,直到该段之前未曾出现过。

只要当前段是唯一的,就将其加入段列表,标记为已经出现过,并从下一个下标开始构建新的段。

重复上述步骤,直到处理完整个字符串 s。

返回字符串数组 segments,其中 segments[i] 表示创建的第 i 段。

示例 1:

输入: s = "abbccccd"

输出: ["a","b","bc","c","cc","d"]

解释:

下标 添加后 已经出现过    当前段            新段        更新后

        的段     的段              是否已经出现过?          已经出现过的段

0     "a"        []                                 否        ""            ["a"]

1     "b"        ["a"]                            否        ""            ["a", "b"]

2     "b"        ["a", "b"]                     是         "b"          ["a", "b"]

3     "bc"      ["a", "b"]                     否         ""            ["a", "b", "bc"]

4     "c"        ["a", "b", "bc"]            否          ""            ["a", "b", "bc", "c"]

5     "c"        ["a", "b", "bc", "c"]      是         "c"           ["a", "b", "bc", "c"]

6    "cc"       ["a", "b", "bc", "c"]      否          ""            ["a", "b", "bc", "c", "cc"]

7  "d"     ["a", "b", "bc", "c", "cc"]  否         ""         ["a", "b", "bc", "c", "cc", "d"]

因此,最终输出为 ["a", "b", "bc", "c", "cc", "d"]。

示例 2:

输入: s = "aaaa"

输出: ["a","aa"]

解释:

下标   添加          已经               当前段                 新段     更新后

          后的段      出现过的段    是否已经出现过?            已经出现过的段

0       "a"              []                    否                          ""         ["a"]

1       "a"             ["a"]                是                           "a"        ["a"]

2       "aa"          ["a"]                 否                            ""         ["a", "aa"]

3       "a"            ["a", "aa"]         是                            "a"       ["a", "aa"]

因此,最终输出为 ["a", "aa"]。

提示:

1 <= s.length <= 105

s 仅包含小写英文字母。

问题分析:

根据题目的描述,从0号字符开始向后拓展构建新段,在拓展时,只要该段在之前未出现过,就将其加入新段列表,并从下一个下标开始构建新段,所以从一个下标开始找出一个新段是解决问题的关键,为此设计函数struct_new_paragraph(i,s,pars),其功能是从下标i开始在字符串s中拓展新段,并将新段加入新段列表pars中,函数返回构建下一个新段的起始位置和本次生成的新段列表,这样可以反复调用本函数以拓展后续的新段。

主程序根据输入的字符串s,从索引号0开始利用struct_new_paragraph(i,s,pars)函数拓展新段,只要返回的起始位置小于字符串s的长度n,就可以不断拓展,最后将新段列表输出,即是问题的解。

程序如下:

#通过起始位置i、原字符串s和新段列表pars构造新段,返回下一个新段的起始位置和本次生成的新段列表
def struct_new_paragraph(i,s,pars):n=len(s)# j用于控制结束位置,所以当起位置i取到n-1时,j要取到n+1for j in range(i+1,n+1):a=s[i:j]print('截取字符串:',a)if a not in pars:pars.append(a)print(f'新段起始位置{j},新段列表{pars}')return j,parselse:print(f'{a}已经在新段列表中')continueelse:print('j,pars:',n,pars)return n,pars#主程序
s=input('pls input s=')
pars=[]
n=len(s)
print('新段起始位置为0,新段列表为[]')
(i,pars)=struct_new_paragraph(0,s,pars)
while i<n:i, pars = struct_new_paragraph(i, s, pars)
print(f'起始位置索引号{i}已经超过字符串{s}的最大索引号{n-1}')
print(f'最终输出新段列表为{pars}')

运行实例一

pls input s=abaacd

新段起始位置为0,新段列表为[]

截取字符串: a

新段起始位置1,新段列表['a']

截取字符串: b

新段起始位置2,新段列表['a', 'b']

截取字符串: a

a已经在新段列表中

截取字符串: aa

新段起始位置4,新段列表['a', 'b', 'aa']

截取字符串: c

新段起始位置5,新段列表['a', 'b', 'aa', 'c']

截取字符串: d

新段起始位置6,新段列表['a', 'b', 'aa', 'c', 'd']

起始位置索引号6已经超过字符串abaacd的最大索引号5

最终输出新段列表为['a', 'b', 'aa', 'c', 'd']

运行实例二

pls input s=bbbbbb

新段起始位置为0,新段列表为[]

截取字符串: b

新段起始位置1,新段列表['b']

截取字符串: b

b已经在新段列表中

截取字符串: bb

新段起始位置3,新段列表['b', 'bb']

截取字符串: b

b已经在新段列表中

截取字符串: bb

bb已经在新段列表中

截取字符串: bbb

新段起始位置6,新段列表['b', 'bb', 'bbb']

起始位置索引号6已经超过字符串bbbbbb的最大索引号5

最终输出新段列表为['b', 'bb', 'bbb']

运行实例三

pls input s=abbcccd

新段起始位置为0,新段列表为[]

截取字符串: a

新段起始位置1,新段列表['a']

截取字符串: b

新段起始位置2,新段列表['a', 'b']

截取字符串: b

b已经在新段列表中

截取字符串: bc

新段起始位置4,新段列表['a', 'b', 'bc']

截取字符串: c

新段起始位置5,新段列表['a', 'b', 'bc', 'c']

截取字符串: c

c已经在新段列表中

截取字符串: cd

新段起始位置7,新段列表['a', 'b', 'bc', 'c', 'cd']

起始位置索引号7已经超过字符串abbcccd的最大索引号6

最终输出新段列表为['a', 'b', 'bc', 'c', 'cd']

理清处理问题的逻辑顺序,合理分割其中的处理步骤,转换成对应的函数,问题必将容易解决。

http://www.dtcms.com/wzjs/502473.html

相关文章:

  • 建站系统破解微信营销的方法7种
  • wordpress内核源码分析深圳网络推广seo软件
  • 网站开发tt0546百度关键词搜索广告的优缺点
  • 网站建设与管理方案书广州seo网站排名
  • 商务网站开发课程体会湖南网络推广服务
  • 洛卡博网站谁做的百度网
  • 网页制作软件visualseo建设者
  • 民宿设计公司山东seo推广
  • 怎么建设国外网站全网投放广告的渠道有哪些
  • 威海市做网站的百度识图网站
  • 清远网站开发sohu网络营销策划书范文
  • 公司做网站之前要准备什么百度网站大全
  • 朝阳区办公深圳百度搜索排名优化
  • 网站打不开原因检测关键词排名优化易下拉软件
  • 网站建设7个基本流程分析app拉新项目一手渠道商
  • 顺德网站建设公司网络公司排行榜
  • 怎样在公司的网站服务器上更新网站内容渠道策略的四种方式
  • php做音乐网站网站优化是什么意思
  • 房地产网站开发百度云网盘网页版
  • 网站制作什么做小程序制作一个需要多少钱
  • 点个赞科技 网站制作东莞发布最新通告
  • 最超值的网站建设aso关键词覆盖优化
  • 仿别人网站线上营销策略有哪些
  • 网站域名注册如何填写西安seo招聘
  • ai里做的图片方网站上不清楚营销策划有限公司经营范围
  • 南通网站制作价格网站建设培训机构
  • 制作链接怎么做南京seo域名
  • 哪个网站做美食视频网站网站seo关键词优化技巧
  • 怎么做网站能快速赚钱鸡西seo顾问
  • 绿色食品网站模板.htm广告优化师的工作内容