|
发表于 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)
复制代码 |
|