File tree 5 files changed +152
-21
lines changed
solution/2000-2099/2042.Check if Numbers Are Ascending in a Sentence
5 files changed +152
-21
lines changed Original file line number Diff line number Diff line change @@ -186,19 +186,66 @@ func areNumbersAscending(s string) bool {
186
186
187
187
``` ts
188
188
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 ;
196
197
}
197
198
}
198
199
return true ;
199
200
}
200
201
```
201
202
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
+
202
249
### **...**
203
250
204
251
```
Original file line number Diff line number Diff line change @@ -155,19 +155,66 @@ func areNumbersAscending(s string) bool {
155
155
156
156
``` ts
157
157
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 ;
165
166
}
166
167
}
167
168
return true ;
168
169
}
169
170
```
170
171
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
+
171
218
### **...**
172
219
173
220
```
Original file line number Diff line number Diff line change
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 number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change 1
1
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 ;
9
10
}
10
11
}
11
12
return true ;
You can’t perform that action at this time.
0 commit comments