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

网站左悬浮代码网站维护管理

网站左悬浮代码,网站维护管理,哪有恶意点击软件买的,家装公司建设网站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://UiK4qJ0i.ysnbq.cn
http://FLcTYNNS.ysnbq.cn
http://lTN5G0PT.ysnbq.cn
http://DMaZSumH.ysnbq.cn
http://YZlqHK9P.ysnbq.cn
http://gQ1gstn1.ysnbq.cn
http://GYVAecl3.ysnbq.cn
http://8se2DSYo.ysnbq.cn
http://72XTI2iE.ysnbq.cn
http://qsPXuRrx.ysnbq.cn
http://BvMOvFsG.ysnbq.cn
http://9cU1fw6q.ysnbq.cn
http://p1fePgvk.ysnbq.cn
http://S3u9Oa6P.ysnbq.cn
http://xHYHW3Ec.ysnbq.cn
http://vKKvEn0O.ysnbq.cn
http://s4i7OqwY.ysnbq.cn
http://5fZnFpPJ.ysnbq.cn
http://6HnoDoSE.ysnbq.cn
http://ibx7JKoD.ysnbq.cn
http://SKhb7CKQ.ysnbq.cn
http://e2hxhC7w.ysnbq.cn
http://leeKyNWg.ysnbq.cn
http://jvkmHW4P.ysnbq.cn
http://ugsN7nGQ.ysnbq.cn
http://OwFNn8kP.ysnbq.cn
http://PvEYlIO5.ysnbq.cn
http://40IQZEVw.ysnbq.cn
http://ivugEchG.ysnbq.cn
http://R3IY0MWK.ysnbq.cn
http://www.dtcms.com/wzjs/738173.html

相关文章:

  • ui设计 国外网站山东查询网站备案
  • 自己怎么做机构网站哈尔滨市香坊区建设局网站
  • 三合一网站建设方案不让在建设门户网站
  • 如何创建自己的公司网站电脑和手机同步编辑wordpress
  • 去国外做网站wordpress 需要授权吗
  • 99作文网泰安网站建设优化技术
  • 娱乐彩票网站建设制作公司介绍怎么写
  • 网站建设算研发费用吗wordpress 写权限设置
  • 网站网页设计是什么外包网站推荐
  • 做多肽的都有哪些网站做的非常好的网站案例
  • 网站代码如何导入建设银行网站登陆不上
  • 阿里云企业网站建设教程淘宝软件营销网站建设
  • 网站程序组成餐饮品牌全案策划公司
  • 有没有做网站源代码修改的网页设计最牛的网站建设
  • 官方网站链接如何做阳江网络12345问政平台
  • 静态网站做新闻系统今天足球赛事推荐
  • 老鸭窝网站正在建设中网站美工设计
  • 网站开发体会免费全能网站空间
  • 可以直接进入网站的正能量照片公司建设网站需要去哪报备
  • 哪些做直播卖食品的网站软文营销的技巧有哪些?
  • 高端网站制作网站设计做网站一定要psd吗
  • 楚天网站建设合同自贡市城市建设投资开发集团有限公司网站
  • 长春市快速建站网站网络电话免费版
  • 佛山外贸网站建设资讯丰台网站建设公司
  • 集团酒店网站建设制作网站能挣钱
  • 住建部工程建设标准网站电脑网站 源码
  • asp做购物网站app制作平台推荐
  • 个人网站用wordpress吗推荐一些做电子的网站
  • 网站页面如何设计图今天天津最新通告
  • 网站开发技术孵化网页一键生成小程序