鱼C论坛

 找回密码
 立即注册
查看: 2459|回复: 7

[已解决]求助

[复制链接]
发表于 2022-9-21 16:29:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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



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[i].swapcase()==stri[i+1]:
            a.append(i)
            a.append(i+1)
    if a==[]:                               #防止a中出现三个连续的数
        break

    for j in range(len(a)-1):
        if a[j]==a[j+1]:
            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的参数超出了列表的范围,求纠错
最佳答案
2022-9-21 19:16:22
本帖最后由 jackz007 于 2022-9-21 19:40 编辑
S = input("请输入字符串:")
i , T = 0 , ''
while i < len(S) - 1:
    if S[i] != S[i + 1] and S[i] . lower() == S[i + 1] . lower():
        i += 1
    else:
        T = T + S[i]
    i += 1
if i == len(S) - 1:
    T = T + S[i]
print(T)
        运行实况:
D:\[00.Exerciese.2022]\Python>python x.py
请输入字符串:ABBCCDDEEFFGG
ABBCCDDEEFFGG

D:\[00.Exerciese.2022]\Python>python x.py
请输入字符串:ABbcCDdeE
A

D:\[00.Exerciese.2022]\Python>python x.py
请输入字符串:ABbcCDdeEF
AF

D:\[00.Exerciese.2022]\Python>
        用列表的版本
S = input("请输入字符串:")
a , i = [] , 0
while i < len(S) - 1:
    if S[i] != S[i + 1] and S[i] . lower() == S[i + 1] . lower():
        i += 1
    else:
        a . append(S[i])
    i += 1
if i == len(S) - 1:
    a . append(S[i])
print('' . join(a))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-21 19:16:22 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-9-21 19:40 编辑
S = input("请输入字符串:")
i , T = 0 , ''
while i < len(S) - 1:
    if S[i] != S[i + 1] and S[i] . lower() == S[i + 1] . lower():
        i += 1
    else:
        T = T + S[i]
    i += 1
if i == len(S) - 1:
    T = T + S[i]
print(T)
        运行实况:
D:\[00.Exerciese.2022]\Python>python x.py
请输入字符串:ABBCCDDEEFFGG
ABBCCDDEEFFGG

D:\[00.Exerciese.2022]\Python>python x.py
请输入字符串:ABbcCDdeE
A

D:\[00.Exerciese.2022]\Python>python x.py
请输入字符串:ABbcCDdeEF
AF

D:\[00.Exerciese.2022]\Python>
        用列表的版本
S = input("请输入字符串:")
a , i = [] , 0
while i < len(S) - 1:
    if S[i] != S[i + 1] and S[i] . lower() == S[i + 1] . lower():
        i += 1
    else:
        a . append(S[i])
    i += 1
if i == len(S) - 1:
    a . append(S[i])
print('' . join(a))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-21 21:04:37 | 显示全部楼层
jackz007 发表于 2022-9-21 19:16
运行实况:

        用列表的版本

又是大佬,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-21 21:06:56 | 显示全部楼层
jackz007 发表于 2022-9-21 19:16
运行实况:

        用列表的版本

我感觉有个别几个课后作业好难啊,我想好久也做不出来,勉强写出来运行不对找错误也很困难,是我能力不行吗,有点怀疑自己了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

        不要着急,慢慢来,随着难题的逐个被解决,代表着你的专业技术水平也在不断提高。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

我不喜欢看答案,但是有的又确实写不出来,所以有那么两三道都是死磕了一整天,是不是应该改变一下了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

         一开始肯定不可以看答案,但是,经过努力确实感到困难的时候,可以参考,但是,参考不是抄袭,一定要在接受别人解题思路的基础上,找出自己的问题所在,这个过程本身也是在学习。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢佬的指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 17:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表