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

2024-05-04:用go语言,给定一个起始索引为0的字符串s和一个整数

0
分享至

2024-05-04:用go语言,给定一个起始索引为0的字符串s和一个整数k。

要进行分割操作,直到字符串s为空:

选择s的最长前缀,该前缀最多包含k个不同字符;

删除该前缀,递增分割计数。如果有剩余字符,它们保持原来的顺序。

在操作之前,可以修改字符串s中的一个字符为另一个小写英文字母。

在最佳情况下修改至多一次字符后,返回操作结束时得到的最大分割数量。

输入:s = "accca", k = 2。

输出:3。

答案2024-05-04:

chatgpt

题目来自leetcode3003。

大体步骤如下:

1.创建一个递归函数,用于计算分割得到的最大数量。

dfs

2.函数中,首先检查是否到达字符串末尾,若是则返回 1(表示完成一个分割)。

3.使用记录中间结果,加快计算速度。

memo

4.对于当前处理的字符,如果不将其作为新的分割点,继续处理下一个字符。

s[i]

5.如果将作为新的分割点,并且新的字符数量不超过,则继续向后处理。

s[i]

k

6.如果未修改过字符,则尝试修改为其他26个小写字母,然后继续考虑分割带来的最大数量。

s[i]

7.在每一步中,根据是否修改过字符,记录当前的最大分割数量。

8.最终返回得到的最大分割数量。

总的时间复杂度为 $O(n \cdot 2^{26})$,其中$n$为字符串长度,$2^{26}$表示尝试修改字符的可能性数目。

总的额外空间复杂度为$O(n \cdot 2^{26})$,主要由中间结果记录所占用的空间引起。

memo

Go完整代码如下:

packagemain
import(
"fmt"
"math/bits"
)
funcmax(x,yint)int{
ifx>y{
returnx
}
returny
}
funcmaxPartitionsAfterOperations(sstring,kint)int{
n:=len(s)
typeargsstruct{
i,maskint
changedbool
}
memo:=map[args]int{}
vardfsfunc(int,int,bool)int
dfs=func(i,maskint,changedbool)(resint){
ifi==n{
return1
}
a:=args{i,mask,changed}
ifv,ok:=memo[a];ok{//之前计算过
returnv
}
//不改s[i]
bit:=1<<(s[i]-'a')
newMask:=mask|bit
ifbits.OnesCount(uint(newMask))>k{
//分割出一个子串,这个子串的最后一个字母在i-1
//s[i]作为下一段的第一个字母,也就是bit作为下一段的mask的初始值
res=dfs(i+1,bit,changed)+1
}else{//不分割
res=dfs(i+1,newMask,changed)
}
if!changed{
//枚举把s[i]改成a,b,c,...,z
forj:=0;j<26;j++{
newMask:=mask|1<ifbits.OnesCount(uint(newMask))>k{
//分割出一个子串,这个子串的最后一个字母在i-1
//j作为下一段的第一个字母,也就是1<
res=max(res,dfs(i+1,1<}else{//不分割
res=max(res,dfs(i+1,newMask,true))
}
}
}
memo[a]=res//记忆化
returnres
}
returndfs(0,0,false)
}
funcmain(){
s:="accca"
k:=2
result:=maxPartitionsAfterOperations(s,k)
fmt.Println(result)
}



Python完整代码如下:

#-*-coding:utf-8-*-
defmax_partitions_after_operations(s,k):
n=len(s)
memo={}
defdfs(i,mask,changed):
ifi==n:
return1
a=(i,mask,changed)
ifainmemo:
returnmemo[a]
res=0
bit=1<<(ord(s[i])-ord('a'))
new_mask=mask|bit
ifbin(new_mask).count('1')>k:
res=dfs(i+1,bit,changed)+1
else:
res=dfs(i+1,new_mask,changed)
ifnotchanged:
forjinrange(26):
new_mask=mask|1<ifbin(new_mask).count('1')>k:
res=max(res,dfs(i+1,1<else:
res=max(res,dfs(i+1,new_mask,True))
memo[a]=res
returnres
returndfs(0,0,False)
s="accca"
k=2
result=max_partitions_after_operations(s,k)
print(result)



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

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

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.

相关推荐
热点推荐
快看!高校体育馆内惊现长发热裤美女裸奔,学生惊恐逃离现场

快看!高校体育馆内惊现长发热裤美女裸奔,学生惊恐逃离现场

新动察plus
2024-05-29 16:00:07
甘肃女子嫌弃广东婆婆做的菜,上网吐槽:每个月10w房租就吃这些

甘肃女子嫌弃广东婆婆做的菜,上网吐槽:每个月10w房租就吃这些

阿龙美食记
2024-05-28 23:54:21
“逃亡结束”!王健林无法逃脱法律制裁,能否顺利走出困境?

“逃亡结束”!王健林无法逃脱法律制裁,能否顺利走出困境?

我不叫阿哏
2024-05-29 02:24:11
王伟中、许昆林、王浩、周乃翔、王凯、黄强,最新发声!

王伟中、许昆林、王浩、周乃翔、王凯、黄强,最新发声!

政知新媒体
2024-05-28 20:46:18
英媒:中国将打破“现代化就是西方化”的神话

英媒:中国将打破“现代化就是西方化”的神话

环球网资讯
2024-05-28 06:13:06
英伟达市值接近2.6万亿美元,黄仁勋或超越马斯克成世界首富

英伟达市值接近2.6万亿美元,黄仁勋或超越马斯克成世界首富

懂球帝
2024-05-29 10:24:13
晚上19点30分,央视直播中国女排VS荷兰,若输球将被扣12分

晚上19点30分,央视直播中国女排VS荷兰,若输球将被扣12分

极度说球
2024-05-29 08:56:04
孙楠穿羽绒服抵达长沙录制《歌手2024》网友:他不热么?歌单已出

孙楠穿羽绒服抵达长沙录制《歌手2024》网友:他不热么?歌单已出

娱乐书坊
2024-05-29 11:40:53
专访孙杨:结束禁赛,很想念站在比赛跳发台的感觉

专访孙杨:结束禁赛,很想念站在比赛跳发台的感觉

澎湃新闻
2024-05-28 14:16:52
炸裂!比亚迪大招:续航超2000公里!王传福:中国品牌改写全球汽车油耗史!

炸裂!比亚迪大招:续航超2000公里!王传福:中国品牌改写全球汽车油耗史!

证券时报e公司
2024-05-28 22:10:56
足球报:刘永灼签穆里奇时先谈塔尔德利,转攻穆里奇后加价50万刀

足球报:刘永灼签穆里奇时先谈塔尔德利,转攻穆里奇后加价50万刀

直播吧
2024-05-29 11:06:31
鲁能大牌新归化夏窗正式到位!曾在欧洲踢主力,已发文告别老东家

鲁能大牌新归化夏窗正式到位!曾在欧洲踢主力,已发文告别老东家

罗掌柜体育
2024-05-29 17:13:27
“续了3碗面还没饱”,马记永们怎么靠「免费续面羞耻」让打工人不敢多吃?

“续了3碗面还没饱”,马记永们怎么靠「免费续面羞耻」让打工人不敢多吃?

Vista氢商业
2024-05-27 14:52:55
凯特王妃疑似化疗造型曝光,脸上笑容明媚,状态恢复得不错!

凯特王妃疑似化疗造型曝光,脸上笑容明媚,状态恢复得不错!

鑫鑫说说
2024-05-29 14:19:49
重磅! 重庆土主隧道发生泄漏: 耗资65亿 通车不到三年,原因难琢磨

重磅! 重庆土主隧道发生泄漏: 耗资65亿 通车不到三年,原因难琢磨

鬼菜生活
2024-05-29 16:10:51
哈尔科夫持续遭空袭,泽连斯基访问西班牙求援:需要7套“爱国者”

哈尔科夫持续遭空袭,泽连斯基访问西班牙求援:需要7套“爱国者”

凤凰卫视
2024-05-28 16:41:06
“请再帮我做一次手术吧”,肝癌晚期患者23年后再次来沪

“请再帮我做一次手术吧”,肝癌晚期患者23年后再次来沪

澎湃新闻
2024-05-28 13:24:46
写字楼市场,崩了

写字楼市场,崩了

壹地产
2024-05-27 07:34:53
笑晕了,今晚24时国内油价或将调整,网友评论区笑不活了

笑晕了,今晚24时国内油价或将调整,网友评论区笑不活了

看看娱乐与体育
2024-05-29 16:14:44
美国的“美誉”毁了?

美国的“美誉”毁了?

平原公子
2024-05-28 07:35:45
2024-05-29 18:54:44
moonfdd
moonfdd
福大大架构师每日一题
405文章数 7关注度
往期回顾 全部

科技要闻

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

头条要闻

70岁"烟草虎"受贿逾9亿被判死缓 退休9年仍在大肆敛财

头条要闻

70岁"烟草虎"受贿逾9亿被判死缓 退休9年仍在大肆敛财

体育要闻

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

娱乐要闻

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

财经要闻

任正非最敬佩的对手,暂时受挫

汽车要闻

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

态度原创

数码
亲子
健康
房产
公开课

数码要闻

Keychron 超薄键盘新增 100% 配列,B6 Pro 海外售价 44.99 美元

亲子要闻

宝宝不爱吃青菜,爸爸想到一个好办法

晚餐不吃or吃七分饱,哪种更减肥?

房产要闻

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

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版