@@ -42,13 +42,85 @@ The substring "BBBB" has the longest repeating letters, which is 4.
42
42
### ** Python3**
43
43
44
44
``` python
45
-
45
+ class Solution :
46
+ def characterReplacement (self , s : str , k : int ) -> int :
47
+ counter = [0 ] * 26
48
+ i = j = maxCnt = 0
49
+ while i < len (s):
50
+ counter[ord (s[i]) - ord (' A' )] += 1
51
+ maxCnt = max (maxCnt, counter[ord (s[i]) - ord (' A' )])
52
+ if i - j + 1 > maxCnt + k:
53
+ counter[ord (s[j]) - ord (' A' )] -= 1
54
+ j += 1
55
+ i += 1
56
+ return i - j
46
57
```
47
58
48
59
### ** Java**
49
60
50
61
``` java
62
+ class Solution {
63
+ public int characterReplacement (String s , int k ) {
64
+ int [] counter = new int [26 ];
65
+ int i = 0 ;
66
+ int j = 0 ;
67
+ for (int maxCnt = 0 ; i < s. length(); ++ i) {
68
+ char c = s. charAt(i);
69
+ ++ counter[c - ' A' ];
70
+ maxCnt = Math . max(maxCnt, counter[c - ' A' ]);
71
+ if (i - j + 1 - maxCnt > k) {
72
+ -- counter[s. charAt(j) - ' A' ];
73
+ ++ j;
74
+ }
75
+ }
76
+ return i - j;
77
+ }
78
+ }
79
+ ```
80
+
81
+ ### ** C++**
82
+
83
+ ``` cpp
84
+ class Solution {
85
+ public:
86
+ int characterReplacement(string s, int k) {
87
+ vector<int > counter(26);
88
+ int i = 0, j = 0, maxCnt = 0;
89
+ for (char& c : s)
90
+ {
91
+ ++counter[ c - 'A'] ;
92
+ maxCnt = max(maxCnt, counter[ c - 'A'] );
93
+ if (i - j + 1 > maxCnt + k)
94
+ {
95
+ --counter[ s[ j] - 'A'] ;
96
+ ++j;
97
+ }
98
+ ++i;
99
+ }
100
+ return i - j;
101
+ }
102
+ };
103
+ ```
51
104
105
+ ### **Go**
106
+
107
+ ```go
108
+ func characterReplacement(s string, k int) int {
109
+ counter := make([]int, 26)
110
+ j, maxCnt := 0, 0
111
+ for i := range s {
112
+ c := s[i] - 'A'
113
+ counter[c]++
114
+ if maxCnt < counter[c] {
115
+ maxCnt = counter[c]
116
+ }
117
+ if i-j+1 > maxCnt+k {
118
+ counter[s[j]-'A']--
119
+ j++
120
+ }
121
+ }
122
+ return len(s) - j
123
+ }
52
124
```
53
125
54
126
### ** ...**
0 commit comments