本文最后更新于:2023年3月19日 晚上
Lt821. 字符的最短距离
给定一个字符串 S
和一个字符 C
。返回一个代表字符串 S
中每个字符到字符串 S
中的字符 C
的最短距离的数组。
示例:
1 2
| 输入:S = "loveleetcode", C = 'e' 输出:[3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]
|
提示:
- 字符串
S
的长度范围为 [1, 10000]
。
C
是一个单字符,且保证是字符串 S
里的字符。
S
和 C
中的所有字母均为小写字母。
思路
遍历每个字符,从该字符向其左右同时进行搜索,直到找到目标字符。
解答
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
var shortestToChar = function (S, C) { S = S.split(""); return S.map((arr, index) => { let count = 0; if (S[index] === C) return count; count++; while (index - count >= 0 || index + count <= S.length - 1) { if (index + count <= S.length - 1 && S[index + count] === C) return count; if (index - count >= 0 && S[index - count] === C) return count; count++; } }); };
|