网站建设佰金手指科杰十三,建网站公司哪个比较好,企管宝,黑龙江网站建设巨耀网络文章目录1. 题目2. 解题1. 题目
我们定制了一款特殊的力扣键盘#xff0c;所有的键都排列在一行上。
我们可以按从左到右的顺序#xff0c;用一个长度为 26 的字符串 keyboard #xff08;索引从 0 开始#xff0c;到 25 结束#xff09;来表示该键盘的键位布局。
现在…
文章目录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_mapchar,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 长按或扫码关注我的公众号一起加油、一起学习进步