Skip to content

Commit 4267adb

Browse files
zhaocchenyanglbme
authored andcommitted
feat: add typescript solution to lcof2 problem: No.034
No.034.剑指 Offer II 034. 外星语言是否排序
1 parent 97f0716 commit 4267adb

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

lcof2/剑指 Offer II 034. 外星语言是否排序/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,29 @@ class Solution {
111111
}
112112
```
113113

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+
114137
### **C++**
115138

116139
```cpp
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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+
};

0 commit comments

Comments
 (0)