go: add «1208. Get Equal Substrings Within Budget»
Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
parent
03dc69e6ed
commit
2e2c8a758e
1 changed files with 29 additions and 0 deletions
29
go/get-equal-substrings-within-budget.go
Normal file
29
go/get-equal-substrings-within-budget.go
Normal file
|
@ -0,0 +1,29 @@
|
|||
package get_equal_substrings_within_budget
|
||||
|
||||
func equalSubstring(s string, t string, maxCost int) int {
|
||||
abs := func(x int) int {
|
||||
return max(x, -x)
|
||||
}
|
||||
|
||||
getCost := func(i int) int {
|
||||
return abs(int(s[i]) - int(t[i]))
|
||||
}
|
||||
|
||||
mostOptimal := 0
|
||||
|
||||
begin := 0
|
||||
|
||||
cost := 0
|
||||
for i, _ := range t {
|
||||
cost += getCost(i)
|
||||
|
||||
for cost > maxCost {
|
||||
cost -= getCost(begin)
|
||||
begin++
|
||||
}
|
||||
|
||||
mostOptimal = max(mostOptimal, i-begin+1)
|
||||
}
|
||||
|
||||
return mostOptimal
|
||||
}
|
Loading…
Reference in a new issue