文章目录

  • 1. 题目
  • 2. 解题

1. 题目

我们定制了一款特殊的力扣键盘,所有的键都排列在一行上。

我们可以按从左到右的顺序,用一个长度为 26 的字符串 keyboard (索引从 0 开始,到 25 结束)来表示该键盘的键位布局。

现在需要测试这个键盘是否能够有效工作,那么我们就需要个机械手来测试这个键盘。

最初的时候,机械手位于左边起第一个键(也就是索引为 0 的键)的上方。
当机械手移动到某一字符所在的键位时,就会在终端上输出该字符。

机械手从索引 i 移动到索引 j 所需要的时间是 |i - j|

当前测试需要你使用机械手输出指定的单词 word,请你编写一个函数来计算机械手输出该单词所需的时间。

示例 1:
输入:keyboard = "abcdefghijklmnopqrstuvwxyz", word = "cba"
输出:4
解释:
机械手从 0 号键移动到 2 号键来输出 'c',又移动到 1 号键来输出 'b',
接着移动到 0 号键来输出 'a'。
总用时 = 2 + 1 + 1 = 4. 示例 2:
输入:keyboard = "pqrstuvwxyzabcdefghijklmno", word = "leetcode"
输出:73提示:
keyboard.length == 26
keyboard 按某种特定顺序排列,并包含每个小写英文字母一次。
1 <= word.length <= 10^4
word[i] 是一个小写英文字母

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/single-row-keyboard
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:int calculateTime(string keyboard, string word) {unordered_map<char,int> m;for(int i = 0; i < 26; ++i)m[keyboard[i]] = i;int dis = 0;char prev = 0;for(int i = 0; i < word.size(); ++i){dis += abs(m[word[i]]-prev);prev = m[word[i]];}return dis;}
};

32 ms 7.1 MB


长按或扫码关注我的公众号,一起加油、一起学习进步!

LeetCode 1165. 单行键盘(哈希)相关推荐

  1. LeetCode 2156. 查找给定哈希值的子串(字符串哈希)

    文章目录 1. 题目 2. 解题 1. 题目 给定整数 p 和 m ,一个长度为 k 且下标从 0 开始的字符串 s 的哈希值按照如下函数计算: hash(s,p,m)=(val(s[0])∗p0+v ...

  2. LeetCode练习五:哈希表

    文章目录 一.哈希表 1.1 哈希表简介 1.2 哈希函数 1.2.1 直接定址法 1.2.2 除留余数法 1.2.3 平方取中法 2.4 基数转换法 1.3 哈希冲突 1.3.1 开放地址法 1.3 ...

  3. 【代码随想录】【LeetCode】学习笔记04-哈希表

    前言 哈希法牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找. 如果遇到需要判断一个元素是否出现过的场景,应该第一时间想到哈希法! 四个常见哈希表类型对 ...

  4. LeetCode 169. 多数元素 (哈希映射|投票算法)

    169. 多数元素 题意: 多数:数组中出现次数大于n2\frac{n}{2}2n​ 的数 输入一个含有多数元素的数组 找出该多数 解法1 (暴力法) 思路: 找出数组中每一个元素出现的次数 次数保存 ...

  5. LeetCode——706,设计哈希映射

    数据结构核心原理与算法应用 /*** \* Created: liuhuichao* \* Date: 2019/8/14* \* Time: 30:41 PM* \* Description: 设计 ...

  6. LeetCode刷题总结01--哈希表问题

    1.UT_hash_handle的用法总结 1.1.str类型相关接口使用 struct hashEntry {char key[100];int value;UT_hash_handle hh; } ...

  7. leetcode基础编程:哈希表

    160. 存在重复元素 难度:简单 收藏 给你一个整数数组 nums .如果任一值在数组中出现 至少两次 ,返回 true :如果数组中每个元素互不相同,返回 false . 示例 1: 输入:num ...

  8. 129. Leetcode 202. 快乐数 (哈希表)

    class Solution:def isHappy(self, n: int) -> bool:set_ = set()while 1:sum_ = self.getSum(n)if sum_ ...

  9. leetCode 204. Count Primes 哈希 求素数

    204. Count Primes 求素数 Description: Count the number of prime numbers less than a non-negative number ...

最新文章

  1. HTML5图片怎么添加渐变,HTML5 canvas图和实现填充渐变形状
  2. as3转换为html5,AS3和HTML5 - 使用正则表达式将字符串解析为数组
  3. bootcamp空间不足_Bootcamp安装WinXP补丁时C盘空间不足怎么办?
  4. 混合多云每个人都应避免的3个陷阱(第2部分)
  5. CSU 1112 机器人的指令
  6. 一次Mysql 死锁事故
  7. word替换向下箭头符号
  8. 高精度WGS84与GCJ-02坐标转换
  9. webstorm搜狗输入法变成繁体字
  10. 常见音频格式开源解码库汇总(持续更新)
  11. 开放银行赋能供应链金融,连接企业生态场景
  12. 微积分学在计算机科学中的应用,浅谈微积分学在中学数学教学中的应用解答.doc...
  13. java中的依赖是啥意思_java – “ – ”(箭头)在gradle的依赖图中是什么意思?
  14. NC6自助开发文件存放路径及一些总结以及修改自助登录界面的样式、图片、添加文字提示等文件
  15. 洛谷-平衡点-(模拟退火)
  16. 如何开启Vista Aero效果
  17. 大学四年自学走来,这些私藏的【实用工具/学习网站】我贡献出来了
  18. 分享!几招收集信息和数据的方法,阿里,瑞幸资料通通都有
  19. 推荐 5 个IDEA插件,效能飞起
  20. 工业机械手的PLC控制

热门文章

  1. HA机制的大数据集群的搭建过程
  2. MFC读取配置文件GetPrivateProfileString
  3. 字符设备驱动基础篇3——字符设备驱动工作原理
  4. 201671010144 2016-2017 《java程序设计》--对象与类!
  5. 鼠标经过超链接文字变色
  6. Java中遍历删除ArrayList中多个元素
  7. Service 的生命周期;两种启动方法和区别
  8. 周末生活日记|我们和楠哥
  9. rk3188开机失败(ump_file_open() 251)
  10. linux pdm 查看工具,linux系统监控工具