回答編集履歴
1
追記
test
CHANGED
@@ -20,3 +20,21 @@
|
|
20
20
|
}
|
21
21
|
|
22
22
|
console.log(longestCommonHead(sample)); // => my_name_is_
|
23
|
+
```
|
24
|
+
|
25
|
+
### 補足
|
26
|
+
上記のコードでは、`wihle`ループの終了条件として `i` の上限を最も短い文字列の長さ `minLength`未満としていましたが、これは最短の文字列の長さである必要はなく先頭の文字列`firstToken`の長さでも事足りました。ですので、上記のコードは以下のように修正して一行減らせます。
|
27
|
+
|
28
|
+
```diff
|
29
|
+
const [firstToken, ...restTokens] = tokens;
|
30
|
+
- const minLength = Math.min(...tokens.map(token => token.length));
|
31
|
+
|
32
|
+
let i = 0;
|
33
|
+
- while(i < minLength) {
|
34
|
+
+ while(i < firstToken.length) {
|
35
|
+
if (restTokens.every(token => token[i] === firstToken[i]))
|
36
|
+
i ++;
|
37
|
+
|
38
|
+
```
|
39
|
+
|
40
|
+
|