diff --git a/go/get-equal-substrings-within-budget.go b/go/get-equal-substrings-within-budget.go new file mode 100644 index 0000000..369627e --- /dev/null +++ b/go/get-equal-substrings-within-budget.go @@ -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 +}