|  | 
 
 发表于 2024-1-20 15:10:54
|
显示全部楼层
   本楼为最佳答案 
| 本帖最后由 jackz007 于 2024-1-20 15:26 编辑 
 复制代码s = input('请输入一个字符串:')
a = [i for i in s]
j = 0
while j < len(a) - 1 :      # 注意这里,明明是在删除 a 的内容,却用 s 的长度作为循环依据,下标不越界才怪!
    if a[j] == a[j + 1] . swapcase() :
        a . pop(j)
        a . pop(j)          # 注意这里,前一句执行过后,a[j] 就是删除前的 a[j + 1] 了
        if j :              # 注意这里,新字符拼过来后,应该回退一个字符,判断新的组合是否满足删除条件
            j -= 1          # 注意这里
    else:
        j += 1
print(a)
不用 list 的版本
 
 复制代码s , j = input('请输入一个字符串:') , 1
while j < len(s) :
    if s[j - 1] == s[j] . swapcase() :
        s = s[: j - 1] + s[j + 1 :]
        if j > 1 : 
            j -= 1
    else :
        j += 1
print(s)
 | 
 |