美文网首页
LeetCode-821-字符的最短距离

LeetCode-821-字符的最短距离

作者: 阿凯被注册了 | 来源:发表于2020-10-21 08:36 被阅读0次
image.png

解题思路:

  1. 常规解法:先遍历一遍找到S中等于C的下标,再遍历一次S计算最短距离;
  2. 指针双向遍历:当S中s等于C时,用指针从右往左和从左往右分别遍历,更新距离,其中从右往左遍历可以从s左边最近的一个C的位置开始遍历。

Python3代码:

class Solution:
    def shortestToChar(self, S: str, C: str) -> List[int]:
        # 指针双向遍历
        ans = [1e9]*len(S)
        for i in range(len(S)):
            if S[i] == C:
                left=i
                dis = 0
                while left>=0 and ans[left]>dis:
                    ans[left] = dis
                    left-=1
                    dis+=1
                right=i+1
                dis=1
                while right<len(S) and ans[right]>dis:
                    ans[right]=dis
                    right+=1
                    dis+=1
        return ans

        # 常规解法
        l = [i for i in range(len(S)) if S[i] ==C]
        ans=[0]*len(S)
        for i in range(len(S)):
            if S[i]==C:
                ans[i]=0
            else:
                ans[i]= min([abs(i-j) for j in l])
        return ans

相关文章

  • LeetCode-821-字符的最短距离

    解题思路: 常规解法:先遍历一遍找到S中等于C的下标,再遍历一次S计算最短距离; 指针双向遍历:当S中s等于C时,...

  • 字符的最短距离

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

  • 字符的最短距离

    题目: 题目的理解: 获取C在S中的所有索引L,然后每一个字符与L进行相减并求绝对值,获取最小的值。 python...

  • LeetCode 821. 字符的最短距离

    题目地址(821. 字符的最短距离) https://leetcode-cn.com/problems/short...

  • 821. 字符的最短距离

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

  • 最短的距离

    火车站左转到汽车站然后又回到火车站出站口,全程0.5公里。有点意思,哎,我排队大约1小时多。不过还好,又轮一站...

  • Leetcode 821. 字符的最短距离

    题目表述难度:简单 给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 ...

  • 821. 字符的最短距离(Python)

    题目 难度:★★☆☆☆类型:字符串 给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串...

  • 你与知识跃迁之间的距离,只差“联机学习”

    点与点之间的距离,最短是直线; 路径很多,最短距离只有一个; 你与知识跃迁的最短距离,就是联机学习。 “呀,联机学...

  • 243. Shortest Word Distance

    给定一个字符串数组 wordsDict,和已经存在于数组中的两个不同的字符串,返回列表中两个单词之间的最短距离。 ...

网友评论

      本文标题:LeetCode-821-字符的最短距离

      本文链接:https://www.haomeiwen.com/subject/vlplmktx.html