python 中的单行键盘
pythonserver side programmingprogramming更新于 2025/10/26 19:56:17
假设有一个特殊的键盘,所有键都在一行中。因此,如果我们有一个长度为 26 的字符串,表示键盘的布局(索引从 0 到 25),最初我们的手指位于索引 0。要输入一个字符,我们必须将手指移动到下一个字符的索引。将手指从索引 i 移动到索引 j 所需的时间表示为 |i - j|。因此,如果我们要输入一个字符串。我们必须定义一个函数来计算用一根手指输入它需要多少时间。因此,如果输入序列是"abcdefghijklmnopqrstuvwxyz"并且单词是“hello”,则输出将为 20,因为从 a 到 h 是 7,然后 h 到 e 是 3,然后 e 到 l 是 7,然后 l 到 l 是 0,l 到 o 是 3,所以总数是 7 + 3 + 7 + 3 = 20
为了解决这个问题,我们将遵循以下步骤 −
- 创建一个名为 d 的映射,并且 z := 0
- 对于 i,范围从 0 到键盘格式字符串 k 的长度
- d[k[i]] := i
- ans := 0
- 对于单词中的每个字符 i −
- ans := ans + |d[i] – z|
- z := d[i]
- 返回 ans
示例 (Python)
让我们看下面的实现,以便更好地理解 −
class Solution(object):
def calculateTime(self, k, w):
d = {}
z = 0
for i in range(len(k)):
d[k[i]]=i
ans= 0
for i in w:
ans += abs(d[i]-z)
z = d[i]
return ans
ob1 = Solution()
print(ob1.calculateTime("abcdefghijklmnopqrstuvwxyz", "hello"))
输入
"abcdefghijklmnopqrstuvwxyz" "hello"
输出
20
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

