Leetcode PHP题解--D49 821. Shortest Distance to a Character
D49 821. Shortest Distance to a Character
题目链接
821. Shortest Distance to a Character
题目分析
给定一个字符串s
和一个字符c
。
返回字符串中每一个字符离给定的字符c
的最短距离。
思路
先用array_keys找到字符c
在字符串s
中的位置。
如果当前遍历到的位置是在下一个出现的字符c
之前,那么直接相减下标即可得到距离。
否则,当当前下标大于上一个出现字符c
的位置,且存在下一个字符c
时,距离为两者中最小的那个。
当距离为0时,标记下一个要获取的c
的位置。
最终代码
<?php class Solution { function shortestToChar($S, $C) { $S = str_split($S); $keys = array_keys($S,$C); $distances = []; $prev = 0; foreach($S as $index => $char){ $dist = abs($keys[$prev] - $index); if($index > $keys[$prev] && isset($keys[$prev+1])){ $dist = min($index-$keys[$prev],$keys[$prev+1]-$index); if($dist == 0){ $prev++; } } $distances[] = $dist; } return $distances; } }
若觉得本文章对你有用,欢迎用爱发电资助。
相关推荐
zyyjay 2020-11-09
xuebingnan 2020-11-05
samtrue 2020-11-22
stefan0 2020-11-22
yifangs 2020-10-13
songshijiazuaa 2020-09-24
hebiwtc 2020-09-18
天步 2020-09-17
83911535 2020-11-13
whatsyourname 2020-11-13
zhouyuqi 2020-11-10
Noneyes 2020-11-10
mathchao 2020-10-28
王志龙 2020-10-28
wwwsurfphpseocom 2020-10-28
diskingchuan 2020-10-23
savorTheFlavor 2020-10-23