File tree Expand file tree Collapse file tree 4 files changed +173
-0
lines changed
solution/2200-2299/2299.Strong Password Checker II Expand file tree Collapse file tree 4 files changed +173
-0
lines changed Original file line number Diff line number Diff line change @@ -204,6 +204,67 @@ function strongPasswordCheckerII(password: string): boolean {
204
204
}
205
205
```
206
206
207
+ ### ** Rust**
208
+
209
+ ``` rust
210
+ impl Solution {
211
+ pub fn strong_password_checker_ii (password : String ) -> bool {
212
+ let s = password . as_bytes ();
213
+ let n = password . len ();
214
+ if n < 8 {
215
+ return false ;
216
+ }
217
+ let mut mask = 0 ;
218
+ let mut prev = b ' ' ;
219
+ for & c in s . iter () {
220
+ if c == prev {
221
+ return false ;
222
+ }
223
+ mask |= if c . is_ascii_uppercase () {
224
+ 0b1000
225
+ } else if c . is_ascii_lowercase () {
226
+ 0b100
227
+ } else if c . is_ascii_digit () {
228
+ 0b10
229
+ } else {
230
+ 0b1
231
+ };
232
+ prev = c ;
233
+ }
234
+ mask == 0b1111
235
+ }
236
+ }
237
+ ```
238
+
239
+ ### ** C**
240
+
241
+ ``` c
242
+ bool strongPasswordCheckerII (char * password) {
243
+ int n = strlen(password);
244
+ if (n < 8) {
245
+ return false;
246
+ }
247
+ int mask = 0;
248
+ char prev = ' ';
249
+ for (int i = 0; i < n; i++) {
250
+ if (prev == password[ i] ) {
251
+ return false;
252
+ }
253
+ if (islower(password[ i] )) {
254
+ mask |= 0b1000;
255
+ } else if (isupper(password[ i] )) {
256
+ mask |= 0b100;
257
+ } else if (isdigit(password[ i] )) {
258
+ mask |= 0b10;
259
+ } else {
260
+ mask |= 0b1;
261
+ }
262
+ prev = password[ i] ;
263
+ }
264
+ return mask == 0b1111;
265
+ }
266
+ ```
267
+
207
268
### **...**
208
269
209
270
```
Original file line number Diff line number Diff line change @@ -187,6 +187,67 @@ function strongPasswordCheckerII(password: string): boolean {
187
187
}
188
188
```
189
189
190
+ ### ** Rust**
191
+
192
+ ``` rust
193
+ impl Solution {
194
+ pub fn strong_password_checker_ii (password : String ) -> bool {
195
+ let s = password . as_bytes ();
196
+ let n = password . len ();
197
+ if n < 8 {
198
+ return false ;
199
+ }
200
+ let mut mask = 0 ;
201
+ let mut prev = b ' ' ;
202
+ for & c in s . iter () {
203
+ if c == prev {
204
+ return false ;
205
+ }
206
+ mask |= if c . is_ascii_uppercase () {
207
+ 0b1000
208
+ } else if c . is_ascii_lowercase () {
209
+ 0b100
210
+ } else if c . is_ascii_digit () {
211
+ 0b10
212
+ } else {
213
+ 0b1
214
+ };
215
+ prev = c ;
216
+ }
217
+ mask == 0b1111
218
+ }
219
+ }
220
+ ```
221
+
222
+ ### ** C**
223
+
224
+ ``` c
225
+ bool strongPasswordCheckerII (char * password) {
226
+ int n = strlen(password);
227
+ if (n < 8) {
228
+ return false;
229
+ }
230
+ int mask = 0;
231
+ char prev = ' ';
232
+ for (int i = 0; i < n; i++) {
233
+ if (prev == password[ i] ) {
234
+ return false;
235
+ }
236
+ if (islower(password[ i] )) {
237
+ mask |= 0b1000;
238
+ } else if (isupper(password[ i] )) {
239
+ mask |= 0b100;
240
+ } else if (isdigit(password[ i] )) {
241
+ mask |= 0b10;
242
+ } else {
243
+ mask |= 0b1;
244
+ }
245
+ prev = password[ i] ;
246
+ }
247
+ return mask == 0b1111;
248
+ }
249
+ ```
250
+
190
251
### **...**
191
252
192
253
```
Original file line number Diff line number Diff line change
1
+ bool strongPasswordCheckerII (char * password ) {
2
+ int n = strlen (password );
3
+ if (n < 8 ) {
4
+ return false;
5
+ }
6
+ int mask = 0 ;
7
+ char prev = ' ' ;
8
+ for (int i = 0 ; i < n ; i ++ ) {
9
+ if (prev == password [i ]) {
10
+ return false;
11
+ }
12
+ if (islower (password [i ])) {
13
+ mask |= 0b1000 ;
14
+ } else if (isupper (password [i ])) {
15
+ mask |= 0b100 ;
16
+ } else if (isdigit (password [i ])) {
17
+ mask |= 0b10 ;
18
+ } else {
19
+ mask |= 0b1 ;
20
+ }
21
+ prev = password [i ];
22
+ }
23
+ return mask == 0b1111 ;
24
+ }
Original file line number Diff line number Diff line change
1
+ impl Solution {
2
+ pub fn strong_password_checker_ii ( password : String ) -> bool {
3
+ let s = password. as_bytes ( ) ;
4
+ let n = password. len ( ) ;
5
+ if n < 8 {
6
+ return false ;
7
+ }
8
+ let mut mask = 0 ;
9
+ let mut prev = b' ' ;
10
+ for & c in s. iter ( ) {
11
+ if c == prev {
12
+ return false ;
13
+ }
14
+ mask |= if c. is_ascii_uppercase ( ) {
15
+ 0b1000
16
+ } else if c. is_ascii_lowercase ( ) {
17
+ 0b100
18
+ } else if c. is_ascii_digit ( ) {
19
+ 0b10
20
+ } else {
21
+ 0b1
22
+ } ;
23
+ prev = c;
24
+ }
25
+ mask == 0b1111
26
+ }
27
+ }
You can’t perform that action at this time.
0 commit comments