Python单行键盘


假设有一个特殊的键盘,所有按键都在一行上。如果我们有一个长度为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
  • 对于范围从0到键盘格式字符串k的长度的i
    • 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

更新于:2020年4月28日

321 次查看

启动您的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.