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; } }
若觉得本文章对你有用,欢迎用爱发电资助。
原文地址:https://segmentfault.com/a/1190000019055642
相关推荐
-
使用过Redis,我竟然还不知道Rdb php基础
2019-5-18
-
基于Redis的任务调度设计方案 php基础
2019-9-5
-
系统的讲解 – SSO单点登录 php基础
2019-5-11
-
使用原生php爬取图片并保存到本地 php基础
2019-5-10
-
关于PHP的 PHP-FPM进程CPU 100%的一些原因分析和解决方案 php基础
2019-7-22
-
根据用户id生成一个唯一邀请码 php基础
2019-1-30
-
已解决:zendstudio git提交execution of ls-remote command问题 php基础
2019-5-25
-
php实现对图片对称加解密(适用身份证加密等场景) php基础
2019-6-22
-
yield对性能提升的一次小小测试 php基础
2019-8-15
-
PHP 7.1新特性的汇总介绍 php基础
2019-2-23