当前位置: 首页 > news >正文

dedecms做网站注意事项廊坊seo排名收费

dedecms做网站注意事项,廊坊seo排名收费,老网站改版启用二级域名,试述企业网的定义和意义给你一个字符串 word,由 不同 小写英文字母组成。 电话键盘上的按键与 不同 小写英文字母集合相映射,可以通过按压按键来组成单词。例如,按键 2 对应 ["a","b","c"],我们需要按一次键来输入 "…

给你一个字符串 word,由 不同 小写英文字母组成。

电话键盘上的按键与 不同 小写英文字母集合相映射,可以通过按压按键来组成单词。例如,按键 2 对应 ["a","b","c"],我们需要按一次键来输入 "a",按两次键来输入 "b",按三次键来输入 "c"

现在允许你将编号为 2 到 9 的按键重新映射到 不同 字母集合。每个按键可以映射到 任意数量 的字母,但每个字母 必须 恰好 映射到 一个 按键上。你需要找到输入字符串 word 所需的 最少 按键次数。

返回重新映射按键后输入 word 所需的 最少 按键次数。

下面给出了一种电话键盘上字母到按键的映射作为示例。注意 1*# 和 0  对应任何字母。

示例 1:

输入:word = "abcde"
输出:5
解释:图片中给出的重新映射方案的输入成本最小。
"a" -> 在按键 2 上按一次
"b" -> 在按键 3 上按一次
"c" -> 在按键 4 上按一次
"d" -> 在按键 5 上按一次
"e" -> 在按键 6 上按一次
总成本为 1 + 1 + 1 + 1 + 1 = 5 。
可以证明不存在其他成本更低的映射方案。

示例 2:

输入:word = "xycdefghij"
输出:12
解释:图片中给出的重新映射方案的输入成本最小。
"x" -> 在按键 2 上按一次
"y" -> 在按键 2 上按两次
"c" -> 在按键 3 上按一次
"d" -> 在按键 3 上按两次
"e" -> 在按键 4 上按一次
"f" -> 在按键 5 上按一次
"g" -> 在按键 6 上按一次
"h" -> 在按键 7 上按一次
"i" -> 在按键 8 上按一次
"j" -> 在按键 9 上按一次
总成本为 1 + 2 + 1 + 2 + 1 + 1 + 1 + 1 + 1 + 1 = 12 。
可以证明不存在其他成本更低的映射方案。

题解:

class Solution:def minimumPushes(self, word: str) -> int:a, b = divmod(len(word), 8)return ((a << 2) + b) * (a + 1)
class Solution:def minimumPushes(self, word: str) -> int:n = len(word)keys = 8  # 按键数量,从2到9total = 0position = 1  # 当前按键位置,从1开始remaining = nwhile remaining > 0:# 每一层最多可以分配到8个字母assign = min(keys, remaining)total += assign * positionremaining -= assignposition += 1return total
解题思路

为了最小化总按键次数,我们应尽可能将更多的字母分配到各按键的前几个位置。具体步骤如下:

  1. 确定按键数量:

    • 8 个按键(编号 29)。
  2. 分配字母到按键的位置:

    • 首先,尽可能多地将字母分配到每个按键的第一个位置(每个按键最多一个字母,成本为 1)。
    • 如果字母数量超过 8,则将剩余的字母分配到按键的第二个位置(每个按键最多一个字母,成本为 2)。
    • 依此类推,直到所有字母都被分配。
  3. 计算总成本:

    • 对于每一层(即每个按键的位置),计算分配到该层的字母数量与其对应的成本,然后累加。
实现步骤
  1. 初始化变量:

    • n:字符串 word 的长度。
    • keys:按键的数量,即 8
    • total:总成本,初始为 0
    • position:当前分配的按键位置,初始为 1
    • remaining:剩余未分配的字母数量,初始为 n
  2. 循环分配字母:

    • 在每一层(按键位置)中,分配尽可能多的字母(最多 8 个)。
    • 计算分配到当前层的字母数量 assign,即 min(keys, remaining)
    • 更新总成本:total += assign * position
    • 减少剩余字母数量:remaining -= assign
    • 移动到下一层:position += 1
  3. 返回结果:

    • 循环结束后,返回 total 作为最小按键总成本。
代码说明
  1. 函数 minimumPushes

    • 接受一个字符串 word
    • 计算并返回重新映射后输入该 word 所需的最少按键次数。
    • 使用贪心策略,优先将字母分配到每个按键的前几个位置,以降低总成本。
  2. 变量解释

    • n:字符串 word 的长度。
    • keys:按键数量(编号 298 个)。
    • total:总按键次数。
    • position:当前分配的按键位置(第几次按键)。
    • remaining:剩余未分配的字母数量。
  3. 逻辑流程

    • 在每一层(按键位置)中,尽可能多地分配字母(最多 8 个)。
    • 更新总成本,并减少剩余字母数量。
    • 重复上述过程,直到所有字母都被分配。
http://www.hengruixuexiao.com/news/54690.html

相关文章:

  • 海南网站建设报价方案长沙网站seo排名
  • 怎么做网站自动采集数据库种子库
  • 成都网站建设服务密需湖南岚鸿案例网络营销专业可以干什么工作
  • 大神自己做的下载音乐的网站做企业网站建设的公司
  • 大连日文网站设计职业培训机构排名前十
  • 地税网站建设管理百度知道提问
  • 网站页面的滑动怎么做的五行seo博客
  • 电子商务网站建设怎么做win10优化大师好用吗
  • 郑东新区网站开发微信scrm
  • 个人博客网站建设方案seo搜索引擎优化费用
  • 天津做网站优化哪家好最火的网络销售平台
  • 网站源码地址怎么看软文模板300字
  • 网站建设和营销搜索引擎营销特点是什么
  • 做网站测试怎么样个人接外包项目平台
  • 专业网站开发设计网站搭建谷歌seo
  • 东莞网站建设 烤活鱼搜索引擎优化排名案例
  • 北京网站建设公司收购北京网站优化常识
  • 方正宽带网络服务有限公司标题优化方法
  • 乐清市疫情电子商务沙盘seo关键词
  • 响应式网站seo视频广告联盟平台
  • 国家发改委网站储气能力建设免费推广网站2023mmm
  • 新加坡政府网站建设特点今日时事新闻
  • 网站视频做背景游戏推广员拉人技巧
  • 跳转到手机网站台州seo排名优化
  • 邹城网站建设西地那非片的功能主治和副作用
  • 网站委托建设合同百度推广充值必须5000吗
  • 网站素材站百度知道问答首页
  • 佛山格尔做网站的公司推广途径有哪些
  • 网站利于搜索建立网站需要什么技术
  • 快速搭建网站demo如何免费做视频二维码永久