File tree Expand file tree Collapse file tree 2 files changed +41
-0
lines changed
lcof2/剑指 Offer II 034. 外星语言是否排序 Expand file tree Collapse file tree 2 files changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -111,6 +111,29 @@ class Solution {
111
111
}
112
112
```
113
113
114
+ ### ** TypeScript**
115
+
116
+ ``` ts
117
+ function isAlienSorted(words : string [], order : string ): boolean {
118
+ let charMap = new Map ();
119
+ for (let i = 0 ; i < order .length ; i ++ ) {
120
+ charMap .set (order [i ], i );
121
+ }
122
+ function compare(str1 : string , str2 : string ): boolean {
123
+ const n = Math .min (str1 .length , str2 .length );
124
+ for (let i = 0 ; i < n ; i ++ ) {
125
+ let k1 = str1 [i ], k2 = str2 [i ];
126
+ if (k1 != k2 ) return charMap .get (k1 ) < charMap .get (k2 );
127
+ }
128
+ return n == str1 .length ;
129
+ }
130
+ for (let i = 1 ; i < words .length ; i ++ ) {
131
+ if (! compare (words [i - 1 ], words [i ])) return false ;
132
+ }
133
+ return true ;
134
+ };
135
+ ```
136
+
114
137
### ** C++**
115
138
116
139
``` cpp
Original file line number Diff line number Diff line change
1
+ function isAlienSorted ( words : string [ ] , order : string ) : boolean {
2
+ let charMap = new Map ( ) ;
3
+ for ( let i = 0 ; i < order . length ; i ++ ) {
4
+ charMap . set ( order [ i ] , i ) ;
5
+ }
6
+ function compare ( str1 : string , str2 : string ) : boolean {
7
+ const n = Math . min ( str1 . length , str2 . length ) ;
8
+ for ( let i = 0 ; i < n ; i ++ ) {
9
+ let k1 = str1 [ i ] , k2 = str2 [ i ] ;
10
+ if ( k1 != k2 ) return charMap . get ( k1 ) < charMap . get ( k2 ) ;
11
+ }
12
+ return n == str1 . length ;
13
+ }
14
+ for ( let i = 1 ; i < words . length ; i ++ ) {
15
+ if ( ! compare ( words [ i - 1 ] , words [ i ] ) ) return false ;
16
+ }
17
+ return true ;
18
+ } ;
You can’t perform that action at this time.
0 commit comments