【问题描述】下面的描述字符串的方法称为速记符:
1."a-d" : 代表ASCII码在a和b之间的所有字符构成的连续字符串。其中必有a<b。
2."a-b-c" : 代表ASCII码在a和b, 再到c之间的所有字符构成的连续字符串。其中必有a<b<c。
例如:"a-c"代表字符串"abc","a-z"代表字符串"abcdefghhijklmnopqrstuvwxyz","a-c-g"代表字符串"abcdefg",等等。
在字符串开始和结尾处的'-'不做处理。 编写程序,将字符串s1中的速记符号加以扩展形成等价的完整串.允许处理大小写字母和数字,并可以处理诸如a-b-c与a-z0-9与-a-z等情况.
【输入形式】控制台输入一行,即为s1的内容.可以含有空格,制表符,换行符.
【输出形式】控制台输出变换后的s1.
【样例输入】tld-f0-8 A-F
【样例输出】tldef012345678 ABCDEF
【样例说明】输出对输入中的d-f,0-8,A-F进行了扩展.
python 拓展速记符
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- CSDN专家-HGJ 2021-10-15 13:58关注
可用正则re来解,代码如下:
s = 'tld-f0-8 A-F' import re res=re.findall('\w{1}-\w{1}',s) for m in res: st=m.split('-')[0] ed = m.split('-')[1] if st.isdigit() and ed.isdigit(): v=''.join(list(map(str,range(int(st),int(ed)+1)))) else: v=''.join([chr(x) for x in range(ord(st),ord(ed)+1)]) s=s.replace(m,v) print(s) #输出: tldef012345678 ABCDEF
如对你有帮助,请点击我回答右上角【采纳】按钮采纳支持一下。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度