[LeetCode&Python] Problem 821. Shortest Distance to a Character

Posted chiyeung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode&Python] Problem 821. Shortest Distance to a Character相关的知识,希望对你有一定的参考价值。

Given a string S and a character C, return an array of integers representing the shortest distance from the character C in the string.

Example 1:

Input: S = "loveleetcode", C = ‘e‘
Output: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]

 

Note:

  1. S string length is in [1, 10000].
  2. C is a single character, and guaranteed to be in string S.
  3. All letters in S and C are lowercase.
class Solution:
    def shortestToChar(self, S, C):
        """
        :type S: str
        :type C: str
        :rtype: List[int]
        """
        S2=S[::-1]
        indexOfC=S.index(C)
        indexOfC2=S2.index(C)
        ans1=[]
        ans2=[]
        n=len(S)
        
        for i in range(n):
            if S[i]==C:
                ans1.append(0)
                indexOfC=i
            else:
                ans1.append(abs(i-indexOfC))
                
            if S2[i]==C:
                ans2.append(0)
                indexOfC2=i
            else:
                ans2.append(abs(i-indexOfC2))
        
        ans2=ans2[::-1]
        
        for i in range(n):
            if ans1[i]>ans2[i]:
                ans1[i]=ans2[i]
        
        return ans1

  

以上是关于[LeetCode&Python] Problem 821. Shortest Distance to a Character的主要内容,如果未能解决你的问题,请参考以下文章

C++&Python描述 LeetCode C++&Python描述 LeetCode 剑指 Offer 22. 链表中倒数第k个节点

[LeetCode&Python] Problem 202. Happy Number

[LeetCode&Python] Problem 520. Detect Capital

[LeetCode&Python] Problem 383. Ransom Note

[LeetCode&Python] Problem 458. Poor Pigs

[LeetCode&Python] Problem 682. Baseball Game