821. 字元的最短距離
阿新 • • 發佈:2018-12-11
給定一個字串 S
和一個字元 C
。返回一個代表字串 S
中每個字元到字串 S
中的字元 C
的最短距離的陣列。
示例 1:
輸入: S = "loveleetcode", C = 'e'
輸出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]
說明:
- 字串
S
的長度範圍為[1, 10000]
。 C
是一個單字元,且保證是字串S
裡的字元。S
和C
中的所有字母均為小寫字母。
思路:先儲存所有C的位置,然後對1~S.length() 與儲存位置的距離求絕對值差,儲存最小的。
class Solution(object): def shortestToChar(self, S, C): """ :type S: str :type C: str :rtype: List[int] """ rs = [] pos = [] # length = len(S) for pos_i,pos_val in enumerate(S): if pos_val==C: pos.append(pos_i) print(pos) # 用絕對值計算的方法沒有想到 for i in range(len(S)): tmp = [] for j in pos: tmp.append(abs(i-j)) rs.append(min(tmp)) print(rs) return rs def main(): S = "loveleetcode" C = 'e' myResult = Solution() print(myResult.shortestToChar(S,C)) if __name__ == '__main__': main()