Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 6356387

Browse files
committed
feat: add solutions to lc problem: No.2299
No.2299.Strong Password Checker II
1 parent 87bb9ec commit 6356387

File tree

4 files changed

+173
-0
lines changed

4 files changed

+173
-0
lines changed

‎solution/2200-2299/2299.Strong Password Checker II/README.md‎

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,67 @@ function strongPasswordCheckerII(password: string): boolean {
204204
}
205205
```
206206

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+
207268
### **...**
208269
209270
```

‎solution/2200-2299/2299.Strong Password Checker II/README_EN.md‎

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,67 @@ function strongPasswordCheckerII(password: string): boolean {
187187
}
188188
```
189189

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+
190251
### **...**
191252
192253
```
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
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+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
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+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /