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;}
}
复制代码

若觉得本文章对你有用,欢迎用爱发电资助。

Leetcode PHP题解--D49 821. Shortest Distance to a Character相关推荐

  1. 【Leetcode_easy】821. Shortest Distance to a Character

    problem 821. Shortest Distance to a Character 参考 1. Leetcode_easy_821. Shortest Distance to a Charac ...

  2. LeetCode 613. Shortest Distance in a Line --SQL

    LeetCode 613. Shortest Distance in a Line --SQL LeetCode题解专栏:LeetCode题解 我做的所有的LeetCode的题目都放在这个专栏里,大部 ...

  3. PAT甲级1046 Shortest Distance:[C++题解]前缀和

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 用前缀和快速求出一段的和.注意求两段,取最小值. ac代码 #include<bits/stdc++.h> using ...

  4. Shortest Distance from All Buildings

    Shortest Distance from All Buildings 题目链接:https://leetcode.com/problems... 这道题要求最短的距离,一般这种要求可以到的地方的距 ...

  5. 【测试点2超时问题】1046 Shortest Distance (20 分)_21行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 The task is really simple: given N exits on a highway which forms ...

  6. LeetCode/LintCode 题解丨一周爆刷字符串:URL 编码

    描述 给出一个代表网址 host 的字符串 base_url,和代表查询参数的列表 query_params_list,你需要返回带查询参数的完整 URL. 查询参数列表由一些包含两个元素的数组组成, ...

  7. LeetCode/LintCode 题解丨一周爆刷双指针:最小范围

    描述 有k个升序排列的数组,寻找一个最小范围,使每个数组中至少有一个元素被包含. 范围[a,b]比范围[c,d]小,当且仅当b-a < d-c,或是a < c且b-a == d-c. 给定 ...

  8. LeetCode/LintCode 题解丨一周爆刷字符串:简化路径

    描述 给定一个文件的绝对路径(Unix-style),请进行路径简化. Unix中, . 表示当前目录, - 表示父目录. 结果必须以 / 开头,并且两个目录名之间有且只有一个 /.最后一个目录名(如 ...

  9. LeetCode/LintCode 题解丨一周爆刷字符串:神奇字符串

    描述 一个神奇字符串S仅包含'1'和'2',并遵守以下规则: 字符串S是神奇的,因为连接字符'1'和'2'的连续出现次数会产生字符串S本身. 字符串S的前几个元素如下:S = "122112 ...

最新文章

  1. 数据结构与算法:12 数组与稀疏矩阵
  2. zookeeper+kafka集群部署+storm集群
  3. Bootstrap+PHP实现多图上传
  4. 学习IT技术你需要的是书?视频教程?还是老师?
  5. matlab 时间序列模型稳定度检验
  6. Problem 60 关于解决X11的错误的问题?
  7. python 填充多边形 学习笔记
  8. JVM-class文件完全解析-方法表集合
  9. # 模糊图片边缘_PS大神给你变个魔术,如何巧用PS把模糊的照片变清晰
  10. ROS2学习(七).ROS概念 - ROS客户端库(Ros Client Library)
  11. 将JQGrid与Spring MVC和Gson集成
  12. 操作系统之内存管理:3、基本分页存储管理
  13. mysql 事务 异常_mysql事务级别以及相应的异常现象
  14. 混日子不是你的错,根源在这里
  15. DVWA 靶场通关教程
  16. 143个相见恨晚的排行榜网站,总有一个用得着!
  17. php 爬虫登录网站,Python爬虫模拟登录带验证码网站
  18. 哈尔滨学计算机编程学校,哈尔滨中小学生编程学校排名
  19. 【c++】2.DISALLOW_COPY_AND_ASSIGN的用法
  20. java-画出二维码

热门文章

  1. 提高python执行效率_关于提高python程序执行效率的思路和想法
  2. tracepro应用实例详解_建筑安装工程造价,高清PPT图文详解,小白也能学会的简单步骤...
  3. routeros v6.43.2_routeros软路由负载均衡,充分利用带宽,提高效率降低成本
  4. 支持向量机(SVM)必备知识(KKT、slater、对偶)
  5. linux驱动模块makefile,linux驱动makefile求解
  6. 百度Apollo飘了!在京开启全无人RoboTaxi体验,车型还能选,原因竟是嫌40万人次体验不够...
  7. @老板:别开视频会议了,效率低没人care,斯坦福、微软都可以作证
  8. 塑料:泡两天澡我就消失了?酶降解塑料居然可以这么快 | Nature
  9. 生物学50年难题被DeepMind解决了,蛋白质版“阿法狗”预测结构准确性达92.4
  10. 圆圈在动吗?这个骗过人眼的动图火了,LeCun解释原理:和CNN对抗攻击类似