鱼C论坛

 找回密码
 立即注册
查看: 1506|回复: 4

计算字符串

[复制链接]
发表于 2021-9-15 20:04:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 JoeJoy 于 2021-9-15 20:05 编辑

问题: 输入一段字符串,形式为 数字*[encoded_string]。例如:2*[a3*[c]], 得出结果acccaccc.
注:测试用例很多,格式几乎都是 数字*[encoded_string].
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-15 22:11:00 | 显示全部楼层
原题发出来,你贴的题目格式乱。
另外你的代码发出来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-16 17:59:35 | 显示全部楼层
suchocolate 发表于 2021-9-15 22:11
原题发出来,你贴的题目格式乱。
另外你的代码发出来。

原题已经过去了ㅠㅠ,我这算是记忆下来了,这道题我理解的就是2*[a3*[c]], 经过计算得到acccaccc。 这个例子就是原题的例子,整个字符串都一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-17 09:08:04 | 显示全部楼层
本帖最后由 qq1151985918 于 2021-9-17 09:16 编辑

参考代码:
import re


def get_str(s):
    # 以下非案例 "2*[a3*[c]]" 必须条件
    # 因题目不清,是为防其他条件因素自己想象添加
    # --------------------------------------
    s = s.replace(" ", "").replace("]", "]+")
    while "++" in s or "]+]" in s or "+" == s[-1]:
        s = s.replace("++", "+").replace("]+]", "]]")
        s = s[:-1] if "+" == s[-1] else s
    # --------------------------------------
    
    r1 = re.findall(r"[a-zA-Z]+\d+\*{1}", s)
    r2 = re.findall(r"([a-zA-Z]+)\d+\*{1}", s)
    
    r3 = re.findall(r"\[[a-zA-Z]+\]", s)
    r4 = re.findall(r"\[([a-zA-Z]+)\]", s)
    
    for x, y in zip(r1, r2):
        z = x.replace(y, "'" + y + "'+")
        s = s.replace(x, z)
        
    for x, y in zip(r3, r4):
        z = x.replace(y, "'" + y + "'")
        s = s.replace(x, z)
        
    s = s.replace("[","(").replace("]",")")
    return eval(s)


if __name__ == "__main__":
    string = "2*[a3*[c]]"
    print(get_str(string))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-18 11:24:07 | 显示全部楼层
import re
s = '2*[a3*[c]]'
while '[' in s:
    d =re.findall('\d+\*\[[a-z]+\]', s)
    for each in d:
       n1 = re.findall('\d+', each)[0]
       s1 = re.findall('[a-z]+', each)[0]
       s = s.replace(each, int(n1)*s1)
print(s)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 08:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表