nickxj


私信TA

用户名:dotcpp0615219

访问量:820

签 名:

等  级
排  名 6253
经  验 1380
参赛次数 0
文章发表 23
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

P=list(map(int,input().split())) #P[0] P[1] P[2]分别对应P1 P2 P3
S=input() #输入字符串
s=list(S) #转化为列表
for i in range(1,len(s)-1): #字符串的头尾不用进入循环
   if s[i]=='-': #找到’-‘进行编辑
       if ord('z')>=ord(s[i+1])>ord(s[i-1])>=ord('a'): #判断是否为字母
           if P[0]!=3: #填充字母
               if P[2]==1: #顺序
                   number=ord(s[i+1])-ord(s[i-1])-1
                   X=""
                   if P[0]==1:#小写
                       for j in range(number):
                           for k in range(P[1]):
                               X=X+chr(ord(s[i-1])+j+1)
                   else:#大写
                       for j in range(number):
                           for k in range(P[1]):
                               X=X+chr(ord(s[i-1])+j+1-32) #小写字母的ascll码减去32为大写的
                   s[i]=X
               else:#倒序
                   number = ord(s[i + 1]) - ord(s[i - 1]) - 1
                   X = ""
                   if P[0] == 1:  # 小写
                       for j in range(number):
                           for k in range(P[1]):
                               X = X + chr(ord(s[i + 1]) - j - 1)#从比s[i+1]的ascll码小一的字符开始加入字符串X j用于逐个减直至找到s[i-1]
                   else:  # 大写
                       for j in range(number):
                           for k in range(P[1]):
                               X = X + chr(ord(s[i + 1]) - j - 1 - 32)
                   s[i] = X
           else: #填充*
               number = ord(s[i + 1]) - ord(s[i - 1]) - 1
               x=""
               for j in range(number):
                   for k in range(P[1]):
                       x=x+"*"
               s[i]=x
       elif ord('9')>=ord(s[i+1])>ord(s[i-1])>=ord('0'): #判断是否为数字
           if P[0]!=3: #填充数字
               # print(3)
               if P[2]==1: #顺序
                   number=ord(s[i+1])-ord(s[i-1])-1
                   X=""
                   for j in range(number):
                       for k in range(P[1]):
                           X=X+chr(ord(s[i-1])+j+1)
                   s[i]=X
               else: #倒序
                   number = ord(s[i + 1]) - ord(s[i - 1]) - 1
                   X = ""
                   for j in range(number):
                       for k in range(P[1]):
                           X = X + chr(ord(s[i + 1]) - j - 1) #从比s[i+1]的ascll码小一的字符开始加入字符串X j用于逐个减直至找到s[i-1]
                   s[i] = X
           else: #填充*
               number = ord(s[i + 1]) - ord(s[i - 1]) - 1
               x=""
               for j in range(number):
                   for k in range(P[1]):
                       x=x+"*"
               s[i]=x
       elif ord(s[i+1])==(ord(s[i-1])+1): #若前后字符的ascll码差值为1 则去掉‘-’
           s[i]=""
       else: #若ascll码值 s[i-1]>s[i+1] 则开始下一轮循环 不做处理
           continue;
for i in range(len(s)): #输出
   print(s[i],end="")


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区