|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- s = input("请输入一个字符串:")
-
- res = []
- for each in s:
- if res and res[-1].lower() == each.lower() and res[-1] != each:
- res.pop()
- else:
- res.append(each)
-
- for each in res:
- print(each, end='')
复制代码
这里的if 语句中 res是空的那res[-1]是什么呢
小甲鱼解析:这里比较难理解的应该是判断部分,它是先判断列表是否为空;如果不为空,则将列表中最后一个元素(即上一轮迭代放进去的字符)拿出来比对,大家都转换成小写,如果一样,那么说明它是同一个字母(此时可能是一个大写一个小写,两个都是大写,或者两个都是小写 3 种可能性);最后判断如果两者不相同,则说明是同一个字母的大小写。
判断列表为空是哪个? 上一轮迭代进入each中啊应该,和res没关系啊
最后这“最后判断如果两者不相同,则说明是同一个字母的大小写”都转换为小写字母了,哪应该两者相同为一个字母的大小写吧???
求助 蒙了
第一轮res空,and后面不会继续计算,直接进入else, else下面有 res.append(each),就会给res添加本轮字符。进入下一轮,res的[-1]就变成了上一轮的字符了。
|
|