网易首页 > 网易号 > 正文 申请入驻

2024-05-11:用go语言,给定一个从零开始索引的字符串 s, 以及

0
分享至

2024-05-11:用go语言,给定一个从零开始索引的字符串 s,

以及两个字符串 a 和 b,还有一个整数 k。

定义美丽下标为满足特定条件的字符串下标。

需要找到所有美丽下标,按升序排列后返回为数组形式。

输入:s = "isawsquirrelnearmysquirrelhouseohmy", a = "my", b = "squirrel", k = 15。

输出:[16,33]。

答案2024-05-11:

chatgpt

题目来自leetcode3006。

大体步骤如下:

1.定义一个函数,接受参数为字符串,字符串,字符串和整数,并返回一个整数数组。

beautifulIndices

s

a

b

k

ans

2.在函数中,首先调用函数找到字符串中满足字符串的子串的下标位置,将结果保存在变量中。

beautifulIndices

kmp

s

a

posA

3.接下来,利用函数找到字符串中满足字符串的子串的下标位置,将结果保存在变量中。

kmp

s

b

posB

4.初始化变量和,分别表示在中进行遍历的指针和的长度。

j

m

posB

posB

5.遍历中的每个下标,在内部循环中,检查中从开始的元素是否小于。如果满足条件,则将自增。

posA

i

posB

j

i-k

j

6.如果仍然小于,并且满足的绝对值小于等于,则将添加到结果数组中。

j

m

posB[j] - i

k

i

ans

7.最后,将结果数组返回。

ans

总的时间复杂度为O(n),其中n是字符串的长度。这是因为在KMP算法中,构建前缀表和匹配过程都需要线性时间。

s

总的空间复杂度为O(m),其中m是字符串的长度。这是因为在KMP算法中需要使用一个长度为m的前缀表来存储匹配的信息。

b

Go完整代码如下:

packagemain
import"fmt"
funcmain(){
s:="isawsquirrelnearmysquirrelhouseohmy"
a:="my"
b:="squirrel"
k:=15
ans:=beautifulIndices(s,a,b,k)
fmt.Println(ans)
}
funcbeautifulIndices(s,a,bstring,kint)(ans[]int){
posA:=kmp(s,a)
posB:=kmp(s,b)
j,m:=0,len(posB)
for_,i:=rangeposA{
forjj++
}
ifjans=append(ans,i)
}
}
return
}
funckmp(text,patternstring)(pos[]int){
m:=len(pattern)
pi:=make([]int,m)
cnt:=0
fori:=1;iv:=pattern[i]
forcnt>0&&pattern[cnt]!=v{
cnt=pi[cnt-1]
}
ifpattern[cnt]==v{
cnt++
}
pi[i]=cnt
}
cnt=0
fori,v:=rangetext{
forcnt>0&&pattern[cnt]!=byte(v){
cnt=pi[cnt-1]
}
ifpattern[cnt]==byte(v){
cnt++
}
ifcnt==m{
pos=append(pos,i-m+1)
cnt=pi[cnt-1]
}
}
return
}
funcabs(xint)int{
ifx<0{
return-x
}
returnx
}



Python完整代码如下:

#-*-coding:utf-8-*-
defmain():
s="isawsquirrelnearmysquirrelhouseohmy"
a="my"
b="squirrel"
k=15
ans=beautiful_indices(s,a,b,k)
print(ans)
defbeautiful_indices(s,a,b,k):
posA=kmp(s,a)
posB=kmp(s,b)
j,m=0,len(posB)
ans=[]
foriinposA:
whilejj+=1
ifjans.append(i)
returnans
defkmp(text,pattern):
m=len(pattern)
pi=[0]*m
cnt=0
foriinrange(1,m):
v=pattern[i]
whilecnt>0andpattern[cnt]!=v:
cnt=pi[cnt-1]
ifpattern[cnt]==v:
cnt+=1
pi[i]=cnt
cnt=0
pos=[]
fori,vinenumerate(text):
whilecnt>0andpattern[cnt]!=v:
cnt=pi[cnt-1]
ifpattern[cnt]==v:
cnt+=1
ifcnt==m:
pos.append(i-m+1)
cnt=pi[cnt-1]
returnpos
defabs(x):
ifx<0:
return-x
returnx
main()



声明:个人原创,仅供参考

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
101岁杨振宁月工资惊人!凭什么?回国养老,却把青春奉献给别国

101岁杨振宁月工资惊人!凭什么?回国养老,却把青春奉献给别国

华人星光
2024-05-26 17:24:36
亏18亿也要卖,万科亏本近一半出售总部地块,接盘侠是其大股东

亏18亿也要卖,万科亏本近一半出售总部地块,接盘侠是其大股东

王五说说看
2024-05-28 16:38:59
疑似与中国核潜艇对抗,美军将领透露,中美海下实力还差几年?

疑似与中国核潜艇对抗,美军将领透露,中美海下实力还差几年?

北筏话史
2024-05-28 11:49:12
2-3!日本女排两度领先崩盘,世联赛排名更新:中国女排利好

2-3!日本女排两度领先崩盘,世联赛排名更新:中国女排利好

天涯沦落人
2024-05-28 22:04:38
欧文谈东契奇揽责:我知道他会这么说 但责任不只在他一个人那里

欧文谈东契奇揽责:我知道他会这么说 但责任不只在他一个人那里

直播吧
2024-05-29 13:02:07
森林北这身材绝啦!太美啦!这气质比明星还要漂亮!

森林北这身材绝啦!太美啦!这气质比明星还要漂亮!

粤姐说情感
2024-05-28 15:41:12
太狂!华子喊话达拉斯当地体育明星:第六场我给他带新签名鞋

太狂!华子喊话达拉斯当地体育明星:第六场我给他带新签名鞋

厝边人侃体育
2024-05-29 12:19:12
“五万一次,刺穿下体”:比性交易更恐怖的无性交易

“五万一次,刺穿下体”:比性交易更恐怖的无性交易

今日搞笑分享
2024-05-27 07:15:21
申花二次转会分析

申花二次转会分析

元爸体育
2024-05-29 15:05:59
5月29日赛程:美国女排迎挑战,中国女排求赢球,日本女排很不利

5月29日赛程:美国女排迎挑战,中国女排求赢球,日本女排很不利

体育插班生
2024-05-29 07:38:27
《庆余年2》迎来大结局,不出所料,只有大皇子付辛博吃到红利

《庆余年2》迎来大结局,不出所料,只有大皇子付辛博吃到红利

青苔同学
2024-05-28 21:18:09
赖清德最怕的法案通过,美国高层连夜赴台,台退将:大陆已布好阵

赖清德最怕的法案通过,美国高层连夜赴台,台退将:大陆已布好阵

千里持剑
2024-05-29 15:08:06
埃及总统来北京路上,收到跟以军交火的消息,中方及时给了定心丸

埃及总统来北京路上,收到跟以军交火的消息,中方及时给了定心丸

刘庆彬
2024-05-29 08:30:03
我做月嫂工资3万,除了照顾小孩,还要满足男女主人的需求……

我做月嫂工资3万,除了照顾小孩,还要满足男女主人的需求……

彩蝶
2023-08-04 20:35:52
接机去了?福建舰航母二次海试就玩把大的,北上与辽宁舰打个照面

接机去了?福建舰航母二次海试就玩把大的,北上与辽宁舰打个照面

娱乐为信
2024-05-28 15:31:58
大娘二伯哭了一场回马店了,马店把皮球又踢上面了

大娘二伯哭了一场回马店了,马店把皮球又踢上面了

牛锅巴小钒
2024-05-29 08:38:23
广东队消息:王怀玉成为主帅,威姆斯有望留队,杜锋外甥正式离队

广东队消息:王怀玉成为主帅,威姆斯有望留队,杜锋外甥正式离队

拳击时空
2024-05-29 06:11:30
七枚洲际导弹待发,数千核弹准备启封,20万导弹兵集结:一切就绪

七枚洲际导弹待发,数千核弹准备启封,20万导弹兵集结:一切就绪

奇趣娱乐q
2024-05-28 22:32:44
22岁拿2亿顶薪!24岁被换遍联盟,人生的大起大落,就是这么刺激

22岁拿2亿顶薪!24岁被换遍联盟,人生的大起大落,就是这么刺激

球毛鬼胎
2024-05-28 13:59:02
武汉一小区架空层突发火灾!一辆汽车被烧毁!最新回应

武汉一小区架空层突发火灾!一辆汽车被烧毁!最新回应

鲁中晨报
2024-05-28 18:14:04
2024-05-29 16:56:49
moonfdd
moonfdd
福大大架构师每日一题
405文章数 7关注度
往期回顾 全部

科技要闻

王传福再放狠话,燃油车要成“非主流”

头条要闻

西北大学博士招生被质疑"空降"本校考生 学院:正调查

头条要闻

西北大学博士招生被质疑"空降"本校考生 学院:正调查

体育要闻

巴黎主席向皇马索要8000万 佛爷:1分不给

娱乐要闻

张若昀怎么剧外比剧内更惨兮兮…

财经要闻

东方通收购藏雷 花6亿买来"业绩变脸"

汽车要闻

新哈弗H6苦练内功 向燃油车绝缘智能SAY NO

态度原创

游戏
手机
房产
亲子
旅游

Switch2跳票原因?任天堂社长确认公布Switch继任者会影响销量

手机要闻

AI加持 三星S24 Ultra影像能力再上一个阶梯

房产要闻

有点猛!最新房价:海南每㎡跌了2000多!

亲子要闻

躺在床上自言自语的宝宝,小家伙怎么这么招人稀罕呢!肉嘟嘟的样子太可爱啦

旅游要闻

希尔顿一会员退房时被罚3000元,理由令人震惊

无障碍浏览 进入关怀版