求助
请按照以下规则整理一个给定的字符串一个整理好的字符串中,两个相邻字符 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: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)) jackz007 发表于 2022-9-21 19:16
运行实况:
用列表的版本
又是大佬,谢谢{:10_266:} jackz007 发表于 2022-9-21 19:16
运行实况:
用列表的版本
我感觉有个别几个课后作业好难啊,我想好久也做不出来,勉强写出来运行不对找错误也很困难,是我能力不行吗,有点怀疑自己了{:10_266:} 芝士雪豹 发表于 2022-9-21 21:06
我感觉有个别几个课后作业好难啊,我想好久也做不出来,勉强写出来运行不对找错误也很困难,是我能力不行 ...
不要着急,慢慢来,随着难题的逐个被解决,代表着你的专业技术水平也在不断提高。 jackz007 发表于 2022-9-21 21:16
不要着急,慢慢来,随着难题的逐个被解决,代表着你的专业技术水平也在不断提高。
我不喜欢看答案,但是有的又确实写不出来,所以有那么两三道都是死磕了一整天,是不是应该改变一下了{:10_266:} 芝士雪豹 发表于 2022-9-21 21:22
我不喜欢看答案,但是有的又确实写不出来,所以有那么两三道都是死磕了一整天,是不是应该改变一下了{:10 ...
一开始肯定不可以看答案,但是,经过努力确实感到困难的时候,可以参考,但是,参考不是抄袭,一定要在接受别人解题思路的基础上,找出自己的问题所在,这个过程本身也是在学习。 jackz007 发表于 2022-9-21 21:30
一开始肯定不可以看答案,但是,经过努力确实感到困难的时候,可以参考,但是,参考不是抄袭, ...
谢谢佬的指点{:10_266:}
页:
[1]