当前位置: 首页 > news >正文

821 字符的最短距离

给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。

返回一个整数数组 answer ,其中 answer.length == s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。

两个下标 i 和 j 之间的 距离 为 abs(i - j) ,其中 abs 是绝对值函数。

class Solution {
public:
    vector<int> shortestToChar(string s, char c) {
        //输出距离
        vector<int>ans(n);
        //定义n为字符串长度
        int n=s.size();
        //从左往右遍历字符串,c当前位置存为-n,保证一开始足够大
		for(auto i=0,idx=-n;i<s.size();i++){
            //如果当前字母与c相等
			if(c==s[i]){
                //更新c的当前位置
				idx=i;
			}
            //保存距离
			ans[i]=abs(i-idx);
		}
		//从右往左遍历字符串,c当前位置存为2n,保证最右边字母距离足够大
		for(int i=n-1,idx=2*n;i>=0;i--){
            //如果当前字母等于c
			if(c==s[i]){
                //更新c的位置
				idx=i;
			}
            //更新c的位置,与从左往右遍历取最小值
			ans[i]=min(ans[i],abs(i-idx));
		}
       //返回输出
		return ans;
    }
};

相关文章:

  • c++进阶之----二叉搜索树
  • 【射频仿真学习笔记】Cadence的Layout EXL与ADS dynamic link联动后仿
  • 【组态PLC】基于西门子s7-200PLC和组态王中央空调的循环控制系统【含PLC组态源码 M019期】
  • Java注解的原理
  • Kotlin 随记 (1)
  • RAG-202502
  • Mellanox的LAG全称是什么?网卡的创建机制如何?(Link Aggregation Group 链路聚合组)
  • WiFi IEEE 802.11协议精读:IEEE 802.11-2007,6,MAC service definition MAC服务定义
  • TinyEngine v2.2版本发布:支持页面嵌套路由,提升多层级路由管理能力开发分支调整
  • HBase常用的Filter过滤器操作
  • Spring Data JPA vs MyBatis:ORM框架如何选择?
  • 【IntelliJ IDEA】关于设置固定的文件格式(包括注释、版权信息等)的方法
  • 轨迹控制--odrive的位置控制---负载设置
  • lmstdio大模型——本地大模型python函数调用设计
  • Python中有哪些基本数据类型?
  • 软考~系统规划与管理师考试——真题篇——2021年5月——论文——纯享题目版
  • ClickHouse 的分区、分桶和分片详解
  • 计算机毕业设计SpringBoot+Vue.js学科竞赛管理系统(源码+文档+PPT+讲解)
  • qt5的中文乱码问题,QString、QStringLiteral 为 UTF-16 编码
  • 状态模式
  • 新华保险一季度净赚58.82亿增19%,保费收入增28%
  • 被算法重塑的世界,人与技术如何和谐共处
  • 人社部:将会同更多部门分行业、分领域制定专项培训计划
  • 伊朗国防部发言人:发生爆炸的港口无进出口军用物资
  • 伊朗南部港口火势蔓延,部分集装箱再次发生爆炸
  • “下山虎”张名扬一回合摘下“狮心”:你们再嘘一个给我听听