Re: [闲聊] 每日leetcode

楼主: JIWP (JIWP)   2024-07-13 01:36:48
好久没po每日文了
最近上班比较忙
不知道还能坚持多久
1717. Maximum Score From Removing Substrings
给一个字串:s,和两个数字x、y
当你移除字串中的"ab"时可以获得x分
移除字串中的"ba"时可以获得y分
请问最多可以获得几分?
思路:
去比较x、y谁比较大
x比较大就先处理"ab",反之处理"ba"
接着再去处理剩下的
golang code :
func maximumGain(s string, x int, y int) int {
b,stack,n:=[]byte(s),[]byte{},len(s)
res1:=0
var first,second byte
var cnt1 ,cnt2 int
if x>y{
first='b'
second='a'
cnt1=x
cnt2=y
}else{
first='a'
second='b'
cnt1=y
cnt2=x
}
for i:=0;i<n;i++{
if b[i]==first && len(stack)>0 && stack[len(stack)-1]==second{
res1+=cnt1
stack=stack[:len(stack)-1]
}else{
stack=append(stack,b[i])
}
}
stack1:=[]byte{}
for i:=0;i<len(stack);i++{
if stack[i]==second && len(stack1)>0 && stack1[len(stack1)-1]==first{
res1+=cnt2
stack1=stack1[:len(stack1)-1]
}else{
stack1=append(stack1,stack[i])
}
}
return res1
}

Links booklink

Contact Us: admin [ a t ] ucptt.com