每日一题——字符的最短距离

简介: 每日一题——字符的最短距离

821. 字符的最短距离

题目描述:

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

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

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

示例1:

输入:s = “loveleetcode”, c = “e”

输出:[3,2,1,0,1,0,0,1,2,2,1,0]

示例2:

输入:s = “aaab”, c = “b”

输出:[3,2,1,0]

思路:

先找出字符串s中所有指定字符,并使用一个切片存储其位置,

开始遍历字符串s,如果是指定字符,向结果切片追加0,否则,遍历所有指定字符,求当前字符到只有指定字符的位置,并取最小值,并追加到结果切片。

题解:

func shortestToChar(s string, c byte) []int {
  ans := make([]int, 0)
  // 存放指定字符 第几个:下标
  cSlice := make([]int, 0)
  for i, ch := range s {
    if byte(ch) == c {
      cSlice = append(cSlice, i)
    }
  }
  for i, ch := range s {
    // 遍历到指定字符,追加0
    if byte(ch) == c {
      ans = append(ans, 0)
    } else {
      dis := math.MaxFloat64
      // 求当前位置到每一个指定字符的位置,取最小
      for _, index := range cSlice {
        dis = math.Min(dis,math.Abs(float64(i-index)))
      }
      ans = append(ans, int(dis))
    }
  }
  return ans
}

提交结果:

相关文章
|
前端开发 Java 关系型数据库
校内评奖评优|基于Springboot+Vue实现高校评优管理系统
校内评奖评优|基于Springboot+Vue实现高校评优管理系统
506 1
校内评奖评优|基于Springboot+Vue实现高校评优管理系统
一个实用的产品分析模型
产品分析要从"用什么方式"、解决了“谁的”“什么问题”三个维度进行分析。
218 0
一个实用的产品分析模型
|
1天前
|
云安全 监控 安全
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
725 5
|
11天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
1014 36
|
8天前
|
机器学习/深度学习 人工智能 数据可视化
1秒生图!6B参数如何“以小博大”生成超真实图像?
Z-Image是6B参数开源图像生成模型,仅需16GB显存即可生成媲美百亿级模型的超真实图像,支持中英双语文本渲染与智能编辑,登顶Hugging Face趋势榜,首日下载破50万。
558 28
|
11天前
|
人工智能 前端开发 算法
大厂CIO独家分享:AI如何重塑开发者未来十年
在 AI 时代,若你还在紧盯代码量、执着于全栈工程师的招聘,或者仅凭技术贡献率来评判价值,执着于业务提效的比例而忽略产研价值,你很可能已经被所谓的“常识”困住了脚步。
610 52
大厂CIO独家分享:AI如何重塑开发者未来十年