Python扩展字符串例题

【问题描述】待扩展字符串中有可能包含空格,例如:a-d x-z应扩展成:abcd xyz。
所以读入待扩展字符串时,应能够读入包含空格的字符串。
只要缩记符号-之后的字符比之前的字符的ASCII码值大,就要将它们之间的所有字符扩展出来,
例如:Z-a之间的字符也要扩展出来;
特殊情况:a-b-c将被扩展为:abc。a-a将被扩展为:a-a。

【输入形式】

从键盘输入包含扩展符的字符串

【输出形式】

输出扩展后的字符串

【输入样例】

a-c-u-B

【输出样例】

abcdefghijklmnopqrstu-B

【样例说明】

扩展输入a-c-u为:abcdefghijklmnopqrstu,而B比u值小,所以无法扩展,直接输出。

分析:

1.本题目关键是查找连接符“-”,因此围绕“-”展开遍历字符串

2.扩充规则中有后一个字符ASCII码大1以上才扩充,大1直接压缩,小于等于则不变

3.还有就是开始结束的判断

参考代码:

def kuozhanx(x,y):
    s=''
    if ord(x)+1<ord(y):
        for i in range(ord(x)+1,ord(y)):
            s+=chr(i)
    elif ord(x)+1==ord(y):
        s+=""
    else:
        s+='-'
    return s

s=input()
ls=len(s)
rs=''

for i in range(ls):
    if s[i]=='-' and i!=0 and i!=ls-1:
        rs+=kuozhanx(s[i-1],s[i+1]):
    else:
        rs+=s[i]
print(rs)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值