输入单词需要的最少按键次数 I

这篇具有很好参考价值的文章主要介绍了输入单词需要的最少按键次数 I。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目链接

输入单词需要的最少按键次数 I

题目描述

输入单词需要的最少按键次数 I,算法,数据结构,算法,leetcode,java
输入单词需要的最少按键次数 I,算法,数据结构,算法,leetcode,java
输入单词需要的最少按键次数 I,算法,数据结构,算法,leetcode,java
输入单词需要的最少按键次数 I,算法,数据结构,算法,leetcode,java

注意点

  • 1 <= word.length <= 26
  • word 仅由小写英文字母组成
  • word 中的所有字母互不相同

解答思路

  • 因为word 中的所有字母互不相同,可以以任意8个字符为一组,第一组每个字符需要按键一次,第二组需要按键两次,以此类推…根据字符串长度将每组字符的按键次数累加起来
  • 第二种解法是数学思路,根据字符串的长度n可以计算出每个按键至少分配的字符数量k = n / 8,一样每8个字符为一组,那么这8k个字符需要按键的次数为8 * (1 + 2 + … + k) = 4k * (k + 1),剩下n % 8个字符需要按键的次数为(k + 1)次,也就是(n % 8) * (k + 1),所以总按键次数就为4k * (k + 1) + (n % 8)(k + 1) = (4k + n % 8)(k + 1)

代码

方法一:

class Solution {
    public int minimumPushes(String word) {
        int n = word.length();
        int res = 0;
        int i = 1;
        while (n / 8 != 0) {
            res += 8 * i;
            n -= 8;
            i++;
        }
        res += (n % 8) * i;
        return res;
    }
}

方法二:文章来源地址https://www.toymoban.com/news/detail-820675.html

class Solution {
    public int minimumPushes(String word) {
        int n = word.length();
        int k = n / 8;
        return (k * 4 + n % 8) * (k + 1);
    }
}

关键点

  • word 中的所有字母互不相同,所以word的最大长度为26
  • 推出数学公式的过程

到了这里,关于输入单词需要的最少按键次数 I的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【算法】力扣【动态规划,LCS】1312. 让字符串成为回文串的最少插入次数

    1312. 让字符串成为回文串的最少插入次数 本文探讨的是力扣(LeetCode)上的第1312题:让字符串成为回文串的最少插入次数。这是一道属于动态规划类别下的困难题目,通常以回文串相关的操作来衡量算法的优化和执行效率。 问题的核心是给定一个字符串 s ,你可以在任意位

    2024年01月23日
    浏览(47)
  • 【算法】【Python3、动态规划、贪心、二分查找】力扣1671. 得到山形数组的最少删除次数

    1671. 得到山形数组的最少删除次数 给定一个整数数组 nums ,我们定义该数组为山形数组当且仅当: nums 的长度至少为 3。 存在一个下标 i 满足 0 i len(nums) - 1 且: nums[0] nums[1] ... nums[i - 1] nums[i] nums[i] nums[i + 1] ... nums[len(nums) - 1] 现在,给定整数数组 nums ,我们的目标是将其变为

    2024年01月18日
    浏览(52)
  • 【算法|动态规划No.28】leetcode1312. 让字符串成为回文串的最少插入次数

    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助 🍓希望我们一起努力、成长,共同进步。

    2024年02月06日
    浏览(55)
  • 【LeetCode 算法】Minimum Operations to Halve Array Sum 将数组和减半的最少操作次数-Greedy

    给你一个正整数数组 nums 。每一次操作中,你可以从 nums 中选择 任意 一个数并将它 减小 到 恰好 一半 。(注意,在后续操作中你可以对减半过的数继续执行操作) 请你返回将 nums 数组和 至少 减少一半 的 最少 操作数。 1 = n u m s . l e n g t h = 1 0 5 1 = n u m s [ i ] = 1 0 7 1 = num

    2024年02月15日
    浏览(44)
  • 2023-05-27:给你一个只包含小写英文字母的字符串 s 。 每一次 操作 ,你可以选择 s 中两个 相邻 的字符,并将它们交换。 请你返回将 s 变成回文串的 最少操作次数 。 注意 ,输入数据

    2023-05-27:给你一个只包含小写英文字母的字符串 s 。 每一次 操作 ,你可以选择 s 中两个 相邻 的字符,并将它们交换。 请你返回将 s 变成回文串的 最少操作次数 。 注意 ,输入数据会确保 s 一定能变成一个回文串。 输入:s = \\\"letelt\\\"。 输出:2。 答案2023-05-27: 1.定义结构体

    2024年02月06日
    浏览(88)
  • 【数据结构和算法】最近的请求次数

    Java基础合集 数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 队列问题一般解法 2.2 方法一:队列 三、代码 3.1 方法一:队列 四、复杂度分析 4.1 方法一:队列 这是力扣的 933 题,难度为简单,解

    2024年02月01日
    浏览(44)
  • 1210. 穿过迷宫的最少移动次数

    你还记得那条风靡全球的贪吃蛇吗? 我们在一个  n*n  的网格上构建了新的迷宫地图,蛇的长度为 2,也就是说它会占去两个单元格。蛇会从左上角( (0, 0)  和  (0, 1) )开始移动。我们用  0  表示空单元格,用 1 表示障碍物。蛇需要移动到迷宫的右下角( (n-1, n-2)  和  (

    2024年02月02日
    浏览(75)
  • 2022CCSP T1最少充电次数

    记录第一次CCSP竞赛。一共3题,只做出第一题,用时3h30m(累),ac了开心地吃了个午饭。然而饭饱之后,大脑完全提不起神看着题面昏昏欲睡。第二题是虚拟内存,超级大模拟,刚好这个学期学os,但是翘了太多课完全看不懂,自己看ppt学了一点多级页表,但是1v0,1v1啥的想

    2024年02月08日
    浏览(35)
  • 将数组和减半的最少操作次数(力扣)

    给你一个正整数数组 nums 。每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。(注意,在后续操作中你可以对减半过的数继续执行操作) 请你返回将 nums 数组和 至少 减少一半的 最少 操作数。 示例 1: 示例 2: 每次操作,会将数组中的一个数减半。

    2024年02月16日
    浏览(35)
  • 题目:2027.转换字符串的最少操作次数

    ​​ 题目来源:         leetcode题目,网址:2027. 转换字符串的最少操作次数 - 力扣(LeetCode) 解题思路:        遍历字符串,如果当前位置字符是 \\\'X\\\',计数加一并将当前元素及其后面的元素变为\\\'0\\\',然后继续遍历字符串。最后返回计数结果即可。 解题代码: 总结:  

    2024年02月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包