芝士雪豹 发表于 2022-9-21 16:29:30

求助

请按照以下规则整理一个给定的字符串
一个整理好的字符串中,两个相邻字符 s 和 s,其中 0 <= j <= s.length - 2,要满足如下条件:
若 s 是小写字符,则 s 不可以是相同的大写字符
若 s 是大写字符,则 s 不可以是相同的小写字符
如果 s 和 s 满足以上两个条件,则将它们一并删除



S=input("请输入字符串:")
   
a=[]
b=[]
stri=[]
for p in S:
    stri.append(p)
d=len(stri)

while True:
    for i in range(d-1):                  #找出符合条件的索引放入a
      if stri.swapcase()==stri:
            a.append(i)
            a.append(i+1)
    if a==[]:                               #防止a中出现三个连续的数
      break

    for j in range(len(a)-1):
      if a==a:
            b.append(j)
    b.reverse()
    for k in b:
      a.pop(k)

    a.reverse()                           #翻转a逆向删除
    for o in a:
      stri.pop(o)

    d=len(stri)

for u in stri:   
    print(u,end="")               
   
报错pop的参数超出了列表的范围,求纠错{:10_266:}

jackz007 发表于 2022-9-21 19:16:22

本帖最后由 jackz007 于 2022-9-21 19:40 编辑

S = input("请输入字符串:")
i , T = 0 , ''
while i < len(S) - 1:
    if S != S and S . lower() == S . lower():
      i += 1
    else:
      T = T + S
    i += 1
if i == len(S) - 1:
    T = T + S
print(T)
      运行实况:
D:\\Python>python x.py
请输入字符串:ABBCCDDEEFFGG
ABBCCDDEEFFGG

D:\\Python>python x.py
请输入字符串:ABbcCDdeE
A

D:\\Python>python x.py
请输入字符串:ABbcCDdeEF
AF

D:\\Python>
      用列表的版本
S = input("请输入字符串:")
a , i = [] , 0
while i < len(S) - 1:
    if S != S and S . lower() == S . lower():
      i += 1
    else:
      a . append(S)
    i += 1
if i == len(S) - 1:
    a . append(S)
print('' . join(a))

芝士雪豹 发表于 2022-9-21 21:04:37

jackz007 发表于 2022-9-21 19:16
运行实况:

      用列表的版本

又是大佬,谢谢{:10_266:}

芝士雪豹 发表于 2022-9-21 21:06:56

jackz007 发表于 2022-9-21 19:16
运行实况:

      用列表的版本

我感觉有个别几个课后作业好难啊,我想好久也做不出来,勉强写出来运行不对找错误也很困难,是我能力不行吗,有点怀疑自己了{:10_266:}

jackz007 发表于 2022-9-21 21:16:22

芝士雪豹 发表于 2022-9-21 21:06
我感觉有个别几个课后作业好难啊,我想好久也做不出来,勉强写出来运行不对找错误也很困难,是我能力不行 ...

      不要着急,慢慢来,随着难题的逐个被解决,代表着你的专业技术水平也在不断提高。

芝士雪豹 发表于 2022-9-21 21:22:02

jackz007 发表于 2022-9-21 21:16
不要着急,慢慢来,随着难题的逐个被解决,代表着你的专业技术水平也在不断提高。

我不喜欢看答案,但是有的又确实写不出来,所以有那么两三道都是死磕了一整天,是不是应该改变一下了{:10_266:}

jackz007 发表于 2022-9-21 21:30:34

芝士雪豹 发表于 2022-9-21 21:22
我不喜欢看答案,但是有的又确实写不出来,所以有那么两三道都是死磕了一整天,是不是应该改变一下了{:10 ...

         一开始肯定不可以看答案,但是,经过努力确实感到困难的时候,可以参考,但是,参考不是抄袭,一定要在接受别人解题思路的基础上,找出自己的问题所在,这个过程本身也是在学习。

芝士雪豹 发表于 2022-9-21 21:32:11

jackz007 发表于 2022-9-21 21:30
一开始肯定不可以看答案,但是,经过努力确实感到困难的时候,可以参考,但是,参考不是抄袭, ...

谢谢佬的指点{:10_266:}
页: [1]
查看完整版本: 求助