leetcode 1165. 单行键盘--Java、Python以及Scala语言的实现

本文介绍了LeetCode第1165题,即单行键盘的问题。内容包括问题描述、解题思路及Java、Python和Scala三种语言的代码实现。通过计算机械手在键盘上移动输出指定单词所需的时间来评估键盘的效率。
摘要由CSDN通过智能技术生成

问题描述

  • 我们定制了一款特殊的力扣键盘,所有的键都排列在一行上。我们可以按从左到右的顺序,用一个长度为 26 的字符串 keyboard (索引从 0 开始,到 25 结束)来表示该键盘的键位布局。现在需要测试这个键盘是否能够有效工作,那么我们就需要个机械手来测试这个键盘。最初的时候,机械手位于左边起第一个键(也就是索引为 0 的键)的上方。当机械手移动到某一字符所在的键位时,就会在终端上输出该字符。机械手从索引 i 移动到索引 j 所需要的时间是 |i - j|。当前测试需要你使用机械手输出指定的单词 word,请你编写一个函数来计算机械手输出该单词所需的时间。
  • 输入:keyboard = “abcdefghijklmnopqrstuvwxyz”, word = “cba”
  • 输出:4

解题思路

  • 找出word中每个字符在keyboard中的索引,然后进行运算即可(取绝对值)。

Java 代码

    public int calculateTime(String keyboard, String word) {
   
        int current_num = 0; // 初始化当前机械手的位置变量
        int res = 0; // 初始化结果变量
        
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值