LeetCode 821. 字符的最短距离

1. 题目

给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。

示例 1:输入: S = "loveleetcode", C = 'e'
输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shortest-distance-to-a-character
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 先扫描一遍,确定字符 C 的位置,存储起来,再添加首位两个"无穷远"的虚拟位置
  • 再扫一遍,对不为 C 的字符,计算其到前一个 C 和 后一个 C 的两个距离的较小者存入答案
  • 碰到 C 则,更新 前一个 C 和 后一个 C(left,right)
    在这里插入图片描述
    在这里插入图片描述
class Solution {
public:vector<int> shortestToChar(string S, char C) {int i, j, left, right;vector<int> ans(S.size());vector<int> positionsC;for(i = 0; i < S.size(); ++i) {if(S[i] == C)positionsC.push_back(i);}positionsC.insert(positionsC.begin(),-20000);positionsC.push_back(300000);left = positionsC[0];right = positionsC[1];for(i = 0, j = 1; i < S.size(); ++i) {if(S[i] == C){ans[i] = 0;left = right;right = positionsC[++j];}else{ans[i] = min(i-left,right-i);}}return ans;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pdf各种处理 PDF 的实用代码:PyPDF2、PDFMiner、pdfplumber

你不懂得安排自己的人生&#xff0c;会有很多人帮你安排&#xff0c;他们需要你做的事。 PDF文件我们经常用&#xff0c;尤其是这两个场景&#xff1a; 下载参考资料&#xff0c;如各类报告、文档 分享只读资料&#xff0c;方便传播同时保留源文件 场景和模块 所以&#xff0…

论文浅尝 - ESWC2020 | ESBM:一个面向实体摘要的评测集

本文转载自公众号&#xff1a;南大Websoft。实体摘要&#xff08;Entity Summarization&#xff09;&#xff0c;是知识图谱研究与应用中的一个关键问题。南京大学Websoft团队为此制作了一个评测集&#xff0c;称作ESBM&#xff0c;是目前可以公开获取的规模最大的评测集。这项…

Android官方开发文档Training系列课程中文版:手势处理之滚动动画及Scroller

原文地址&#xff1a;http://android.xsoftlab.net/training/gestures/scroll.html 在Android中&#xff0c;滑动经常由ScrollView类来实现。任何超出容器边界的布局都应该将自己内嵌在ScrollView中&#xff0c;以便提供可滚动的视图效果。自定义滚动只有在特定的场景下才会被…

美团在O2O场景下的广告营销

美团作为中国最大的在线本地生活服务平台&#xff0c;覆盖了餐饮、酒店、旅行、休闲娱乐、外卖配送等方方面面生活场景&#xff0c;连接了数亿用户和数百万商户。如何帮助本地商户开展在线营销&#xff0c;使得他们能快速有效地触达目标用户群体提升经营效率&#xff0c;是美团…

LeetCode 202. 快乐数(快慢指针)

1. 题目 2. 解题 一个数经过若干次各位数平方和后&#xff0c;会等于它自己使用类似环形链表的快慢指针法&#xff0c;最终快慢指针相遇&#xff0c;若不为1则是不快乐数 class Solution { public:int bitSquareSum(int n) {int sum 0, bit;while(n > 0){bit n % 10;su…

全栈深度学习第4期: 机器学习岗位区别与团队管理

一起追剧鸭简介Berkeley全栈深度学习追剧计划是由夕小瑶的卖萌屋发起的优质公开课打卡项目&#xff0c;通过微信群为同期追剧的小伙伴提供交流平台。关于该计划的详请见这里。Berkeley深度学习追剧群目前已有1000小伙伴加入&#xff0c;公众号后台回复口令 深度学习追剧 入群。…

会议交流 | DataFunCon 线上大会 - 知识图谱专题论坛

OpenKG开放知识图谱&#xff08;简称 OpenKG&#xff09;旨在促进中文知识图谱数据的开放与互联&#xff0c;促进知识图谱和语义技术的普及和广泛应用。点击阅读原文&#xff0c;进入 OpenKG 博客。

Android官方开发文档Training系列课程中文版:手势处理之多点触控处理

原文地址&#xff1a;http://android.xsoftlab.net/training/gestures/multi.html 多点触控是指多个手指同时触摸屏幕的情况。这节课主要学习如何检测多点触控手势。 记录多个触控点 当多根手指同时触碰到屏幕时&#xff0c;系统会产生以下触摸事件&#xff1a; ACTION_DOW…

我国政务大数据政策的文本分析:推进逻辑与未来进路

原文地址&#xff1a;https://www.sohu.com/a/238844423_99983415 摘要&#xff1a;[目的/意义]从已颁布政策文件中找出我国推进政务大数据发展和应用的内在逻辑, 为优化未来的政策路径提供对策建议。[方法/过程]通过政府门户网站收集189条有效政策文本, 综合运用词频分析软件…

Flutter原理与实践

Flutter是Google开发的一套全新的跨平台、开源UI框架&#xff0c;支持iOS、Android系统开发&#xff0c;并且是未来新操作系统Fuchsia的默认开发套件。自从2017年5月发布第一个版本以来&#xff0c;目前Flutter已经发布了近60个版本&#xff0c;并且在2018年5月发布了第一个“R…

LeetCode 522. 最长特殊序列 II

1. 题目 给定字符串列表&#xff0c;你需要从它们中找出最长的特殊序列。 最长特殊序列定义如下&#xff1a;该序列为某字符串独有的最长子序列&#xff08;即不能是其他字符串的子序列&#xff09;。 子序列可以通过删去字符串中的某些字符实现&#xff0c;但不能改变剩余字…

论文浅尝 - 计算机工程 | 大规模企业级知识图谱实践综述

本文转载自公众号&#xff1a;计算机工程。大规模企业级知识图谱实践综述王昊奋, 丁军, 胡芳槐, 王鑫中文摘要&#xff1a;近年来&#xff0c;知识图谱及其相关技术得到快速发展&#xff0c;并被广泛应用于工业界各种认知智能场景中。在简述知识图谱相关研究的基础上&#xff0…

python实现拆分、合并、删除pdf

PDF&#xff08;Portable Document Format&#xff09;&#xff0c;中文名称便携文档格式是我们经常会接触到的一种文件格式&#xff0c;文献、文档…很多都是PDF格式。它以格式稳定的优势&#xff0c;使得我们在打印、分享、传输过程中能够最优的保持原有色彩和格式。PDF是以P…

Android官方开发文档Training系列课程中文版:手势处理之拖拽或缩放

原文地址&#xff1a;https://developer.android.com/training/gestures/scale.html 这节课主要学习如何使用触摸手势来拖动、放大屏幕上的对象。 拖动对象 如果你的重点在Android 3.0以上的版本&#xff0c;那么你可以使用内置的拖拽事件监听器View.OnDragListener。 触摸手…

2021年了,对话系统凉透了吗?

文 | 兔子酱编 | 夕小瑶大家好&#xff0c;我是可盐可甜的兔子酱&#xff0c;一枚卖萌屋的资深潜水小编&#xff0c;今天终于有了自己的第一篇文章&#xff0c;希望耗时一周撰写的本文能让大家有所收获~这篇文章&#xff0c;算是对自己在头部大厂2年算法岗炼丹经历的一个经验浓…

前端可用性保障实践

本文基于已发表在Infoq的“美团收银台前端可用性保障实践”一文编辑而成。 一般可用性都是说后端服务的可用性&#xff0c;都说我们的服务可用性到了几个9&#xff0c;很少有人把可用性放到前端来。其实对于任何一个有UI交互流程的业务&#xff0c;都会有前端服务可用性&#x…

LeetCode 762. 二进制表示中质数个计算置位

1. 题目 给定两个整数 L 和 R &#xff0c;找到闭区间 [L, R] 范围内&#xff0c;计算置位位数为质数的整数个数。 &#xff08;注意&#xff0c;计算置位代表二进制表示中1的个数。例如 21 的二进制表示 10101 有 3 个计算置位。还有&#xff0c;1 不是质数。&#xff09; …

报名通道开启 | 顶会 ICLR 2021:医疗对话生成与自动诊断国际竞赛,邀你来战!...

ICLR&#xff0c;2013 年由深度学习三巨头中的Yoshua Bengio 和 Yann LeCun 牵头创办&#xff0c;已受到研究者和开发者的广泛认可&#xff0c;是当之无愧的深度学习领域顶级会议。今年&#xff0c;由中山大学、加利福尼亚大学圣迭戈分校和腾讯天衍实验室等组织联合举办的医疗对…

论文浅尝 | 图神经网络的对抗攻击和防御相关文献集

本文转载自公众号&#xff1a;专知。作者&#xff1a;Wei Jin。导读&#xff1a;本资源整理了关于图形数据或GNN(图形神经网络)上的对抗攻击和防御的论文链接。并对其进行分类。目录Survey PapersAttack PapersDefense PapersCertified Robustness Papers地址连接&#xff1a;h…

Android官方开发文档Training系列课程中文版:手势处理之ViewGroup的事件管理

原文地址&#xff1a;https://developer.android.com/training/gestures/viewgroup.html 在ViewGroup中处理触摸事件要格外小心&#xff0c;因为在ViewGroup中有很多子View&#xff0c;而这些子View对于不同的触摸事件来说是不同的目标。要确保每个View都正确的接收了相应的触…