前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >LeetCode 1974. 使用特殊打字机键入单词的最少时间

LeetCode 1974. 使用特殊打字机键入单词的最少时间

原创
作者头像
freesan44
修改于 2021-10-27 01:54:31
修改于 2021-10-27 01:54:31
5120
举报
文章被收录于专栏:freesan44freesan44

题目地址(1974. 使用特殊打字机键入单词的最少时间)

https://leetcode-cn.com/problems/minimum-time-to-type-word-using-special-typewriter/

题目描述

代码语言:txt
AI代码解释
复制
有一个特殊打字机,它由一个 圆盘 和一个 指针 组成, 圆盘上标有小写英文字母 'a' 到 'z'。只有 当指针指向某个字母时,它才能被键入。指针 初始时 指向字符 'a' 。

每一秒钟,你可以执行以下操作之一:

将指针 顺时针 或者 逆时针 移动一个字符。
键入指针 当前 指向的字符。

给你一个字符串 word ,请你返回键入 word 所表示单词的 最少 秒数 。

 

示例 1:

输入:word = "abc"
输出:5
解释:
单词按如下操作键入:
- 花 1 秒键入字符 'a' in 1 ,因为指针初始指向 'a' ,故不需移动指针。
- 花 1 秒将指针顺时针移到 'b' 。
- 花 1 秒键入字符 'b' 。
- 花 1 秒将指针顺时针移到 'c' 。
- 花 1 秒键入字符 'c' 。


示例 2:

输入:word = "bza"
输出:7
解释:
单词按如下操作键入:
- 花 1 秒将指针顺时针移到 'b' 。
- 花 1 秒键入字符 'b' 。
- 花 2 秒将指针逆时针移到 'z' 。
- 花 1 秒键入字符 'z' 。
- 花 1 秒将指针顺时针移到 'a' 。
- 花 1 秒键入字符 'a' 。


示例 3:

输入:word = "zjpc"
输出:34
解释:
单词按如下操作键入:
- 花 1 秒将指针逆时针移到 'z' 。
- 花 1 秒键入字符 'z' 。
- 花 10 秒将指针顺时针移到 'j' 。
- 花 1 秒键入字符 'j' 。
- 花 6 秒将指针顺时针移到 'p' 。
- 花 1 秒键入字符 'p' 。
- 花 13 秒将指针逆时针移到 'c' 。
- 花 1 秒键入字符 'c' 。


 

提示:

1 <= word.length <= 100
word 只包含小写英文字母。

思路

通过把字符串转成ASCII码之后,计算顺时针逆时针的最小值

代码

  • 语言支持:Python3

Python3 Code:

代码语言:txt
AI代码解释
复制
class Solution:
    def minTimeToType(self, word: str) -> int:
        temp = "a"
        tempStap = ord(temp)
        res = 0
        for i in word:
            target = ord(i)
            res += min(26-abs(target-tempStap),abs(target-tempStap))+1
            # print(res,tempStap,target)
            tempStap = target
        return res

if __name__ == '__main__':
    word = "bza"
    res = Solution().minTimeToType(word)
    print(res)

复杂度分析

令 n 为数组长度。

  • 时间复杂度:$O(n)$
  • 空间复杂度:$O(1)$

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LeetCode 1974. 使用特殊打字机键入单词的最少时间
有一个特殊打字机,它由一个 圆盘 和一个 指针 组成, 圆盘上标有小写英文字母 ‘a’ 到 ‘z’。 只有 当指针指向某个字母时,它才能被键入。指针 初始时 指向字符 ‘a’ 。
Michael阿明
2021/09/06
3550
练琴时悟出的动态规划算法,帮我通关了《辐射4》
这个可以转动的圆盘类似是一个密码机关,中间偏上的位置有个红色的指针看到没,你只要转动圆盘可以让指针指向不同的字母,然后再按下中间的按钮就可以输入指针指向的字母。
labuladong
2021/09/23
5760
1979年的电子打字机
上周五,《大西洋》月刊的记者James Fallows,在Blog上回忆28年前(1982年)的一篇旧文。 那个时候,他刚入行不久,每周有大量的写稿任务,天天都是在打字机旁度过。 这种生活让他痛苦不堪,因为打字机实在太不方便了。如果他写一篇6000个单词的长篇报道,用A4纸印刷出来需要8页,但是用双倍行距在打字机上打出来,需要100页!其中任何一个单词打错了,整页都要重新打。他的文章通常需要修改5遍以上,并且最终定稿时需要多个副本。因此,打字工作量可想而知。 此时,James Fallows想起了,他在杂志
ruanyf
2018/04/19
8260
1979年的电子打字机
随手画个圆,你是怎么画的?我们分析了10万个圆,得到了这样的结论
大数据文摘作品 编译:Niki、吕征达、笪洁琼、Harry 在读本文之前,可以先自己试着从纸上画个圆圈。再回想一下,你是从上面开始画的还是下面呢?顺时针还是逆时针? 在这些问题里,可能隐藏着你来自哪里的线索。 今年十一月,谷歌发布了一款叫“Quick,Draw!”的线上游戏,玩家需要在20秒内画出要求的图案,比如骆驼或洗衣机之类的。(游戏界面传送门:https://quickdraw.withgoogle.com/) 这个游戏的目的远不止让你开心,真正的初衷是运用这些草图让计算机学习人如何绘画。(意味深长啊
大数据文摘
2018/05/24
1.2K0
你的灵魂画作都去哪儿了?“猜画小歌”背后的5000万组数据
自从退出中国的搜索引擎市场,谷歌大概无时不刻都想”卷土重来“。昨天,这家以搜索引擎著称的巨头公司用一款微信小程序“猜画小歌”占领了朋友圈“C位”,刷足存在感的同时,还顺便激发了身边一票“灵魂画手”。
数据森麟
2019/09/27
6020
你的灵魂画作都去哪儿了?“猜画小歌”背后的5000万组数据
用javascript分类刷leetcode20.字符串(图文视频讲解)2
方法1.截取字符串,循环字符串,遇到#就截掉最后一个字符,循环完毕之后,最后比较两个去除掉#退格之后的字符串是否相等,时间复杂度O(m+n),m、n是两个字符串的长度。空间复杂度O(1)
hellocoder2028
2023/01/04
7730
《算法竞赛进阶指南》0x14 Hash
与离散化思想类似,当我们要对若干复杂信息进行统计时,可以用 Hash函数 把这些复杂信息映射到一个容易维护的值域内
一只野生彩色铅笔
2022/10/31
1.8K0
Leetcode No.127 单词接龙(BFS)
字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列: 序列中第一个单词是 beginWord 。 序列中最后一个单词是 endWord 。 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典 wordList 中的单词。 给你两个单词 beginWord 和 endWord 和一个字典 wordList ,找到从 beginWord 到 endWord 的 最短转换序列 中的 单词数目 。如果不存在这样的转换序列,返回 0。
week
2022/01/06
3870
Leetcode No.127 单词接龙(BFS)
《算法竞赛进阶指南》0x02 递推与递归
一个实际问题的各种可能情况构成的 集合 称为 “状态空间”,递推和递归 就是程序遍历 状态空间 的两种基本方式。
一只野生彩色铅笔
2022/10/31
8160
《算法竞赛进阶指南》0x02 递推与递归
添加与搜索单词 - 数据结构设计
请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。
狼啸风云
2023/12/03
1940
LeetCode - #58 最后一个单词的长度
我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。
Swift社区
2022/07/05
4810
《剑指 Offer (第 2 版)》数组部分 JavaScript 题解
《剑指 Offer(第 2 版)》通行全球的程序员经典面试秘籍。剖析典型的编程面试题,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这 5 个面试要点。
用户8921923
2022/10/24
7000
《剑指 Offer (第 2 版)》数组部分 JavaScript 题解
Leetcode模块训练2
1. 两数之和(1)# 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2
素履coder
2022/11/16
3290
算法:字符串
在示例代码中,str是一个字符串的变量名称,hello world则是该字符串的值,字符串的长度为11,该字符串的表示如下图所示:
用户3578099
2022/03/15
2.8K0
算法:字符串
[Leetcode][广度优先/哈希表/纯思路]相关题目汇总/分析/总结
题目汇总 以下链接均为我博客内对应博文,有解题思路和代码,不定时更新补充。 目前范围:Leetcode前150题 BFS广度优先题目 Word Ladder/Word Ladder II/单词接龙/单词接龙 II 难 给定一个起始字符串和一个目标字符串,现在将起始字符串按照特定的变换规则转换为目标字符串,求最少要进行多少次转换。转换规则为每次只能改变字符串中的一个字符,且每次转换后的字符串都要在给定的字符串集合中。 给定一个起始字符串和一个目标字符串,现在将起始字符串按照特定的变换规则转换为目标
蛮三刀酱
2019/03/26
1.1K0
字符串匹配(多模式匹配篇)「建议收藏」
又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。
全栈程序员站长
2022/09/24
2K0
字符串匹配(多模式匹配篇)「建议收藏」
剑指offer | 面试题45:翻转单词顺序
参考链接:https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof/solution/mian-shi-ti-58-i-fan-zhuan-dan-ci-shun-xu-shuang-z/
千羽
2022/02/23
3980
剑指offer | 面试题45:翻转单词顺序
新的一年从刷题开始,LeetCode周赛277题解
今天是大年初一,首先给大家拜个年,祝大家上学的学业有成,工作的前程似锦,结婚的家庭美满。
TechFlow-承志
2022/09/22
5880
新的一年从刷题开始,LeetCode周赛277题解
每日一题 【第13天】LeetCode 151. 翻转字符串里的单词
每日一题 【第13天】LeetCode 151. 翻转字符串里的单词 一、题目 Reverse Words in a String 输入: "a good example" 输出: "example good a" 解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商
早起的鸟儿有虫吃
2022/01/18
6030
每日一题 【第13天】LeetCode 151. 翻转字符串里的单词
LeetCode周赛300,没能AK,刚拿到的勋章要没了……
今天是周一,我们来聊聊第300场的LeetCode周赛,是由未来汽车赞助的。前1000名都能获得内推的机会,第一名还能获得车模……不得不说还是挺慷慨的。
TechFlow-承志
2022/09/21
8940
LeetCode周赛300,没能AK,刚拿到的勋章要没了……
推荐阅读
相关推荐
LeetCode 1974. 使用特殊打字机键入单词的最少时间
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档