@@ -101,6 +101,25 @@ class Solution {
101
101
}
102
102
```
103
103
104
+ ``` java
105
+ class Solution {
106
+ public int lengthOfLongestSubstring (String s ) {
107
+ boolean [] ss = new boolean [128 ];
108
+ int ans = 0 , j = 0 ;
109
+ int n = s. length();
110
+ for (int i = 0 ; i < n; ++ i) {
111
+ char c = s. charAt(i);
112
+ while (ss[c]) {
113
+ ss[s. charAt(j++ )] = false ;
114
+ }
115
+ ans = Math . max(ans, i - j + 1 );
116
+ ss[c] = true ;
117
+ }
118
+ return ans;
119
+ }
120
+ }
121
+ ```
122
+
104
123
### ** C++**
105
124
106
125
``` cpp
@@ -121,6 +140,25 @@ public:
121
140
};
122
141
```
123
142
143
+ ```cpp
144
+ class Solution {
145
+ public:
146
+ int lengthOfLongestSubstring(string s) {
147
+ bool ss[128] = {false};
148
+ int n = s.size();
149
+ int ans = 0;
150
+ for (int i = 0, j = 0; i < n; ++i) {
151
+ while (ss[s[i]]) {
152
+ ss[s[j++]] = false;
153
+ }
154
+ ss[s[i]] = true;
155
+ ans = max(ans, i - j + 1);
156
+ }
157
+ return ans;
158
+ }
159
+ };
160
+ ```
161
+
124
162
### ** Go**
125
163
126
164
``` go
@@ -146,6 +184,29 @@ func max(a, b int) int {
146
184
}
147
185
```
148
186
187
+ ``` go
188
+ func lengthOfLongestSubstring (s string ) (ans int ) {
189
+ ss := make ([]bool , 128 )
190
+ j := 0
191
+ for i , c := range s {
192
+ for ss[c] {
193
+ ss[s[j]] = false
194
+ j++
195
+ }
196
+ ss[c] = true
197
+ ans = max (ans, i-j+1 )
198
+ }
199
+ return
200
+ }
201
+
202
+ func max (a , b int ) int {
203
+ if a > b {
204
+ return a
205
+ }
206
+ return b
207
+ }
208
+ ```
209
+
149
210
### ** JavaScript**
150
211
151
212
``` js
@@ -155,7 +216,7 @@ func max(a, b int) int {
155
216
*/
156
217
var lengthOfLongestSubstring = function (s ) {
157
218
let ans = 0 ;
158
- let vis = new Set ();
219
+ const vis = new Set ();
159
220
for (let i = 0 , j = 0 ; i < s .length ; ++ i) {
160
221
while (vis .has (s[i])) {
161
222
vis .delete (s[j++ ]);
@@ -172,7 +233,7 @@ var lengthOfLongestSubstring = function (s) {
172
233
``` ts
173
234
function lengthOfLongestSubstring(s : string ): number {
174
235
let ans = 0 ;
175
- let vis = new Set <string >();
236
+ const vis = new Set <string >();
176
237
for (let i = 0 , j = 0 ; i < s .length ; ++ i ) {
177
238
while (vis .has (s [i ])) {
178
239
vis .delete (s [j ++ ]);
@@ -184,6 +245,22 @@ function lengthOfLongestSubstring(s: string): number {
184
245
}
185
246
```
186
247
248
+ ``` ts
249
+ function lengthOfLongestSubstring(s : string ): number {
250
+ let ans = 0 ;
251
+ const n = s .length ;
252
+ const ss: boolean [] = new Array (128 ).fill (false );
253
+ for (let i = 0 , j = 0 ; i < n ; ++ i ) {
254
+ while (ss [s [i ]]) {
255
+ ss [s [j ++ ]] = false ;
256
+ }
257
+ ss [s [i ]] = true ;
258
+ ans = Math .max (ans , i - j + 1 );
259
+ }
260
+ return ans ;
261
+ }
262
+ ```
263
+
187
264
### ** Rust**
188
265
189
266
``` rust
0 commit comments