gpt4 book ai didi

python - 最小击键次数 Python 计算器问题

转载 作者:行者123 更新时间:2023-12-04 07:15:35 25 4
gpt4 key购买 nike

我在计算必须按键盘输入某个字符串的最少次数时遇到问题。规则如下:

  • 您键入的每个字母计为 1 次击键
  • 激活大写锁定算作 1 次击键
  • 停用大写锁定算作 1 次击键
  • 按 shift 算作 1 次击键
  • 您不能按住 shift 超过一个字母
  • 您需要编写一个函数,该函数接受一个字符串并返回键入该字符串所需的最小击键次数(整数)

  • 我在尝试用 Python 编写代码时遇到了一些小问题。
    到目前为止我的代码:
    def getAns(string):
    uppercase_count = 0
    keystrokes = 0
    for i in range(len(string)):
    if string[i] == string[i].upper():
    uppercase_count += 1
    if uppercase_count == 1:
    keystrokes += 1
    else:
    if uppercase_count > 1:
    keystrokes += 1
    uppercase_count = 0
    keystrokes += 1
    return keystrokes
    测试字符串:
    "EWlweWXZXxcscSDSDcccsdcfdsFvccDCcDCcdDcGvTvEEdddEEddEdEdAs"
    我的函数返回 79 而不是 78,它应该是。我在我的逻辑中找不到任何问题。有谁能够帮助我?
    这是正确的答案代码,但我不明白
    def getAns(self, s):
    if not s:
    return 0

    cap = 0
    res = 0
    chars = ["abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]

    for i,c in enumerate(s):

    if c in chars[cap]:
    res+=1
    else:
    t = abs(cap - 1)

    if i+1 < len(s) and s[i+1] in chars[t]:
    cap = t

    res+=2

    return res

    最佳答案

    当您将输入字符串减少到仍然会得到不同输出的最小子字符串时,您将识别此子字符串:

    "DCcD"
    对于此输入,您的函数将返回 7,而正确的代码将返回 6。
    您的函数标识此序列:
    Caps ON D C Caps OFF c Shift+D = 7
    但是......它来了......正确的解决方案确定了这个序列:
    大写 ON D C Shift+c D = 6
    考虑到您可以在大写锁定时使用 Shift,这会产生小写字母!

    关于python - 最小击键次数 Python 计算器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68794565/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com