幼儿园手机网站模板免费下载成都私人做网站建设
题目描述:
给你两个字符串 s
和 t
,每个字符串中的字符都不重复,且 t
是 s
的一个排列。
排列差 定义为 s
和 t
中每个字符在两个字符串中位置的绝对差值之和。
返回 s
和 t
之间的 排列差 。
代码思路:
- 建立字符位置映射:
- 对于字符串
s
中的每个字符,记录它在字符串中的位置。 - 对于字符串
t
中的每个字符,同样记录它在字符串中的位置。
- 对于字符串
- 计算排列差:
- 遍历字符串
s
中的每个字符(由于t
是s
的排列,所以字符集是相同的),计算每个字符在两个字符串中位置的绝对差值。 - 将所有字符的绝对差值累加,得到最终的排列差。
- 遍历字符串
代码实现:
class Solution:def findPermutationDifference(self, s: str, t: str) -> int:ds, dt = defaultdict(int), defaultdict(int)for i, c in enumerate(s):ds[c] = ifor i, c in enumerate(t):dt[c] = ireturn sum(abs(ds[c] - dt[c]) for c in s)