|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这是代码,用于删除字符串里相邻类似Aa,Bb,aA这种字母的
s = input("s:")
j = 0
while j < len(s)-1:
if (s[j].isupper() and s[j+1].islower() and s[j].lower == s[j+1]) or (s[j].islower() and s[j+1].isupper and s[j].upper() == s[j+1]):
s = s.replace(s[j],"")
s = s.replace(s[j],"")
j = j
print(s)
else:
j = j+1
跑起来输入了s字符串后就啥也没有了,如图
本帖最后由 jackz007 于 2024-9-21 16:37 编辑
请试试这个代码:
- s = input("s : ")
- f = True
- while f : # 单轮删除后,字母会重新组合,无法避免新生成 aA、Bb、Cc 这样的字母组合,所以,必须多轮扫描删除,直到不再存在这样的组合。
- f = False
- j = 0
- while j < len(s) - 1 :
- if s[j] == s[j + 1] . swapcase() : # 这个函数是专门用来反转字母大小写的
- s = s[: j] + s[j + 2 :] # 不可以用 s . replace(s[j] , "") 因为这个操作会把 s 中所有的 s[j] 都删除掉
- f = True
- else :
- j += 1
- print(s)
复制代码
运行实况:
- D:\[exercise]\Python>python x.py
- s : AAAAaaaaBBBBBbbCCccccc
- AAAAaaaaBBBBBbbCCccccc <--- 【原始输入】
- AAAaaaBBBBbCcccc <--- 第 1 轮处理结果
- AAaaBBBccc <--- 第 2 轮处理结果
- AaBBBccc <--- 第 3 轮处理结果
- BBBccc <--- 第 4 轮处理结果
- BBBccc <--- 【最终结果】
- D:\[exercise]\Python>
复制代码
只要把最后那句
的缩进位置从外层循环内改到外层循环外,就会只打印最后的结果。
|
|