【Python】求救#7错误
查看原帖
【Python】求救#7错误
615931
Qianmo_su楼主2023/1/19 20:33

Python代码

p1,p2,p3 = map(int,input().split())
s=input('s')
jg=''
def tc(i,p1,p2,p3):#按题目要求的(2)(3)(4)将字符串展开
    global s
    tcw=''
    k=1
    if p1==2:
        k-=32#为下面转大写用
    for j in range(ord(s[i+1])-ord(s[i-1])-1):#差为n,中间有n-1种字母,循环n-1次
        tcw+=chr(ord(s[i-1])+j+k)*p2
    if p3==2:
        tcw=tcw[::-1]
    if p1==3:
        tcw='*'*len(tcw)
    return tcw
i=0
while i<len(s)-1:#遍历这个字符串找到'-',不取到最后防止最后一个是'-'不能切片i+1
    if s[i]!='-' or i==0 :
        jg+=s[i]
    elif s[i+1]=='-':#考虑连续的'-'
        j=0
        while i+j<len(s)-1 and s[i+j]=='-':
            jg+=s[i+j]
            j+=1
        i=i+j-1
    elif ord(s[i+1])-ord(s[i-1])>=26 or s[i+1]<=s[i-1]:#因为输入的只有'-',小写字母和数字,去掉连续的'-',那么'-'两边的只可能是数字和小写字母排列组合,字母间内码的差最大为25,而数字与字母内码差最小为40,所以内码差大于25的必定为数字与字母的组合
        jg+=s[i]
    elif ord(s[i+1])-ord(s[i-1])==1:#相邻就去掉'-',不连接到jg上
        pass
    else:#排除别的情况,这种情况就是遇到'-'且两边同类
        jg+=tc(i,p1,p2,p3)
    i+=1
jg+=s[-1]#把没取到的最后一位加上去
print(jg)
2023/1/19 20:33
加载中...