字符的最短距离
给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。返回一个整数数组 answer ,其中 answer.length == s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。
两个下标 i 和 j 之间的 距离 为 abs(i - j)
,其中 abs 是绝对值函数。
var shortestToChar = function (s, c) { let len = s.length const arr = new Array(len) let pos = -n for (let i = 0; i < s.length; i++) { if (s[i] === c) { pos = i } arr[i] = i - pos } for (let i = n - 1; i >= 0; i--) { if (s[i] === c) { pos = i } arr[i] = Math.min(arr[i], Math.abs(i - pos)) } return arr };
知识点
- 通过两次遍历,找到最短距离
- 第一次遍历时,将Pos 值设为 -n, 保证值较大,在第二次遍历时对数据进行修正
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 插槽的实现细节
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
更多
发布评论