Python中的单行键盘

假设有一个特殊的键盘,其中所有键都位于一行中。因此,如果我们有一个长度为26的字符串来指示键盘的布局(索引从0到25),则最初我们的手指在索引0处。要键入一个字符,我们必须将手指移动到下一个字符的索引处。将手指从索引i移到索引j所花费的时间表示为| i-j |。因此,如果我们想输入一个字符串。我们必须定义一个函数来计算用一根手指打字所需的时间。因此,如果输入序列是“ abcdefghijklmnopqrstuvwxyz”,并且单词是“ hello”,那么输出将是20,从a到h,它将是7,然后h到e是3,然后e到l是7,然后l to l是0,l to o是3,所以总数是7 + 3 + 7 + 3 = 20

为了解决这个问题,我们将遵循以下步骤-

  • 创建一个名为d的映射,并且z:= 0

  • 适用于0到键盘格式字符串k长度的范围

    • d [k [i]]:= i

  • 回答:= 0

  • 对于单词中的每个字符-

    • 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