Skip to content

Commit 713a085

Browse files
committed
feat: add solutions to lc problem: No.2042
No.2042.Check if Numbers Are Ascending in a Sentence
1 parent db1d2c0 commit 713a085

File tree

5 files changed

+152
-21
lines changed

5 files changed

+152
-21
lines changed

Diff for: solution/2000-2099/2042.Check if Numbers Are Ascending in a Sentence/README.md

+54-7
Original file line numberDiff line numberDiff line change
@@ -186,19 +186,66 @@ func areNumbersAscending(s string) bool {
186186

187187
```ts
188188
function areNumbersAscending(s: string): boolean {
189-
let strs = s.split(' ');
190-
let prev = Number.MIN_SAFE_INTEGER;
191-
for (let str of strs) {
192-
let num = Number(str);
193-
if (!isNaN(num)) {
194-
if (num <= prev) return false;
195-
prev = num;
189+
let pre = -1;
190+
for (const cur of s.split(' ')) {
191+
if (cur[0] <= '9') {
192+
const num = Number(cur);
193+
if (num <= pre) {
194+
return false;
195+
}
196+
pre = num;
196197
}
197198
}
198199
return true;
199200
}
200201
```
201202

203+
### **Rust**
204+
205+
```rust
206+
impl Solution {
207+
pub fn are_numbers_ascending(s: String) -> bool {
208+
let mut pre = -1;
209+
for cur in s.split(' ') {
210+
if cur.as_bytes()[0] <= b'9' {
211+
let num = cur.parse::<i32>().unwrap();
212+
if num <= pre {
213+
return false;
214+
}
215+
pre = num;
216+
}
217+
}
218+
true
219+
}
220+
}
221+
```
222+
223+
### **C**
224+
225+
```c
226+
bool areNumbersAscending(char *s) {
227+
int pre = -1;
228+
int cur = 0;
229+
for (int i = 0; s[i]; i++) {
230+
if (isdigit(s[i])) {
231+
cur = cur * 10 + s[i] - '0';
232+
} else {
233+
if (cur != 0) {
234+
if (cur <= pre) {
235+
return 0;
236+
}
237+
pre = cur;
238+
cur = 0;
239+
}
240+
}
241+
}
242+
if (cur != 0 && cur <= pre) {
243+
return 0;
244+
}
245+
return 1;
246+
}
247+
```
248+
202249
### **...**
203250
204251
```

Diff for: solution/2000-2099/2042.Check if Numbers Are Ascending in a Sentence/README_EN.md

+54-7
Original file line numberDiff line numberDiff line change
@@ -155,19 +155,66 @@ func areNumbersAscending(s string) bool {
155155

156156
```ts
157157
function areNumbersAscending(s: string): boolean {
158-
let strs = s.split(' ');
159-
let prev = Number.MIN_SAFE_INTEGER;
160-
for (let str of strs) {
161-
let num = Number(str);
162-
if (!isNaN(num)) {
163-
if (num <= prev) return false;
164-
prev = num;
158+
let pre = -1;
159+
for (const cur of s.split(' ')) {
160+
if (cur[0] <= '9') {
161+
const num = Number(cur);
162+
if (num <= pre) {
163+
return false;
164+
}
165+
pre = num;
165166
}
166167
}
167168
return true;
168169
}
169170
```
170171

172+
### **Rust**
173+
174+
```rust
175+
impl Solution {
176+
pub fn are_numbers_ascending(s: String) -> bool {
177+
let mut pre = -1;
178+
for cur in s.split(' ') {
179+
if cur.as_bytes()[0] <= b'9' {
180+
let num = cur.parse::<i32>().unwrap();
181+
if num <= pre {
182+
return false;
183+
}
184+
pre = num;
185+
}
186+
}
187+
true
188+
}
189+
}
190+
```
191+
192+
### **C**
193+
194+
```c
195+
bool areNumbersAscending(char *s) {
196+
int pre = -1;
197+
int cur = 0;
198+
for (int i = 0; s[i]; i++) {
199+
if (isdigit(s[i])) {
200+
cur = cur * 10 + s[i] - '0';
201+
} else {
202+
if (cur != 0) {
203+
if (cur <= pre) {
204+
return 0;
205+
}
206+
pre = cur;
207+
cur = 0;
208+
}
209+
}
210+
}
211+
if (cur != 0 && cur <= pre) {
212+
return 0;
213+
}
214+
return 1;
215+
}
216+
```
217+
171218
### **...**
172219
173220
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
bool areNumbersAscending(char *s) {
2+
int pre = -1;
3+
int cur = 0;
4+
for (int i = 0; s[i]; i++) {
5+
if (isdigit(s[i])) {
6+
cur = cur * 10 + s[i] - '0';
7+
} else {
8+
if (cur != 0) {
9+
if (cur <= pre) {
10+
return 0;
11+
}
12+
pre = cur;
13+
cur = 0;
14+
}
15+
}
16+
}
17+
if (cur != 0 && cur <= pre) {
18+
return 0;
19+
}
20+
return 1;
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
impl Solution {
2+
pub fn are_numbers_ascending(s: String) -> bool {
3+
let mut pre = -1;
4+
for cur in s.split(' ') {
5+
if cur.as_bytes()[0] <= b'9' {
6+
let num = cur.parse::<i32>().unwrap();
7+
if num <= pre {
8+
return false;
9+
}
10+
pre = num;
11+
}
12+
}
13+
true
14+
}
15+
}

Diff for: solution/2000-2099/2042.Check if Numbers Are Ascending in a Sentence/Solution.ts

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
function areNumbersAscending(s: string): boolean {
2-
let strs = s.split(' ');
3-
let prev = Number.MIN_SAFE_INTEGER;
4-
for (let str of strs) {
5-
let num = Number(str);
6-
if (!isNaN(num)) {
7-
if (num <= prev) return false;
8-
prev = num;
2+
let pre = -1;
3+
for (const cur of s.split(' ')) {
4+
if (cur[0] <= '9') {
5+
const num = Number(cur);
6+
if (num <= pre) {
7+
return false;
8+
}
9+
pre = num;
910
}
1011
}
1112
return true;

0 commit comments

Comments
 (0)