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