-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path1844-ReplaceAllDigitsWithCharacters.go
More file actions
69 lines (58 loc) · 2.13 KB
/
1844-ReplaceAllDigitsWithCharacters.go
File metadata and controls
69 lines (58 loc) · 2.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package main
// 1844. Replace All Digits with Characters
// You are given a 0-indexed string s that has lowercase English letters in its even indices and digits in its odd indices.
// You must perform an operation shift(c, x), where c is a character and x is a digit, that returns the xth character after c.
// For example, shift('a', 5) = 'f' and shift('x', 0) = 'x'.
// For every odd index i, you want to replace the digit s[i] with the result of the shift(s[i-1], s[i]) operation.
// Return s after replacing all digits.
// It is guaranteed that shift(s[i-1], s[i]) will never exceed 'z'.
// Note that shift(c, x) is not a preloaded function, but an operation to be implemented as part of the solution.
// Example 1:
// Input: s = "a1c1e1"
// Output: "abcdef"
// Explanation: The digits are replaced as follows:
// - s[1] -> shift('a',1) = 'b'
// - s[3] -> shift('c',1) = 'd'
// - s[5] -> shift('e',1) = 'f'
// Example 2:
// Input: s = "a1b2c3d4e"
// Output: "abbdcfdhe"
// Explanation: The digits are replaced as follows:
// - s[1] -> shift('a',1) = 'b'
// - s[3] -> shift('b',2) = 'd'
// - s[5] -> shift('c',3) = 'f'
// - s[7] -> shift('d',4) = 'h'
// Constraints:
// 1 <= s.length <= 100
// s consists only of lowercase English letters and digits.
// shift(s[i-1], s[i]) <= 'z' for all odd indices i.
import "fmt"
func replaceDigits(s string) string {
res := []byte(s)
isNumber := func (c byte) bool { return '0' <= c && c <= '9' }
for i, v := range res {
if isNumber(v) {
res[i] = (res[i - 1] + (v - '0'))
}
}
return string(res)
}
func main() {
// Example 1:
// Input: s = "a1c1e1"
// Output: "abcdef"
// Explanation: The digits are replaced as follows:
// - s[1] -> shift('a',1) = 'b'
// - s[3] -> shift('c',1) = 'd'
// - s[5] -> shift('e',1) = 'f'
fmt.Println(replaceDigits("a1c1e1")) // abcdef
// Example 2:
// Input: s = "a1b2c3d4e"
// Output: "abbdcfdhe"
// Explanation: The digits are replaced as follows:
// - s[1] -> shift('a',1) = 'b'
// - s[3] -> shift('b',2) = 'd'
// - s[5] -> shift('c',3) = 'f'
// - s[7] -> shift('d',4) = 'h'
fmt.Println(replaceDigits("a1b2c3d4e")) // abbdcfdhe
}