一、请按照以下规则整理一个给定的字符串 s。

一个整理好的字符串中,两个相邻字符 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("请输入一个字符串:")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='')

结果:


解析:这里比较难理解的应该是判断部分,它是先判断列表是否为空;如果不为空,则将列表中最后一个元素(即上一轮迭代放进去的字符)拿出来比对,大家都转换成小写,如果一样,那么说明它是同一个字母(此时可能是一个大写一个小写,两个都是大写,或者两个都是小写 3 种可能性);最后判断如果两者不相同,则说明是同一个字母的大小写。

二、给定的字符串 s 是按照如下规则存放的:它的偶数下标为小写英文字母,奇数下标为正整数。

题目要求:编写代码,将奇数下标的数字转换为相对于上一个字母偏移后的字母。

比如 s = “a1b2c3” 转换后的结果是 “abbdcf”(a1 -> ab,b2 -> bd,c3 -> cf);s = “x7y8z9” 转换后的结果是 “xeygzi”(遇到最后字母 z ,则从 a 继续计算偏移)

提示:用到ord()和chr()函数

ord() 用于将指定的单个字符串转换成对应的 Unicode 编码。
chr() 用于将指定的 Unicode 编码转换成对应的字符。

示例:

>>> ord('A')
65
>>> ord('i')
105
>>> chr(23567)
'小'
>>> chr(30002)
'甲'
>>> chr(40060)
'鱼'

英文字母偏移一位:

>>> ord('A')
65
>>> chr(ord('A')+1)
B

答案代码:

s = input("请按规则输入一个字符串:")length = len(s)
res = []
# 获取字母 a 的编码值
base = ord('a')# 从第一个元素开始,每次迭代跳过一个元素
for i in range(0, length, 2):# ord(s[i]) - base 操作得到一个字母的偏移值,比如 b 就是 1# 跟 26 求余数的作用是防止溢出,循环计算偏移# int(s[i+1]) 下标为奇数所代表的值# s[i]+shift 字符串的拼接,s[i]=a, shift=b,shift = chr((ord(s[i]) - base + int(s[i+1])) % 26 + base)print(s[i]+shift, end="")

运行结果:

我的错误代码:

s=input("请输入字符串:")
a=[]for i in range(len(s)):if i%2==0:a.append(s[i])continueelse :c=s[i-1]b=chr(ord(c)+1)a.append(b)continue
print(a)

运行结果:

题目来自小甲鱼python 字符串(I)

(小甲鱼字符串I编程)1.一个英文字符串,去掉相邻的大写小写如Aa,输出这个字符串 2.字符串按如下存放:它的偶数下标为小写英文字母奇数下标为正整数编写代码将奇数下标的数字转换为上一个字母偏移后的字母相关推荐

  1. 创建bean的JAVA源文件_创建 JavaBean要经过编写代码、编译源文件、配置JavaBean这样一个过程。_学小易找答案...

    [多选题]网络广告效果测定指标包括(). [单选题]"文皆是从道中流出"是谁的观点() [填空题]创建 JavaBean的过程和编写Java类的过程基本相似,可以在任何Java的编 ...

  2. python编写代码实现文件的拷贝功能_python从一个文件夹自动拷贝文件到目标文件夹的代码...

    这里为大家提供一个python操作文件的例子,实现功能:从一个文件夹自动拷贝文件到目标文件夹. 供python爱好者学习参考. 代码如下: # Filename: CopyPictures.py im ...

  3. 每天看一片代码系列(三):codepen上一个音乐播放器的实现

    今天我们看的是一个使用纯HTML+CSS+JS实现音乐播放器的例子,效果还是很赞的: codePen地址 HTML部分 首先我们要思考一下,一个播放器主要包含哪些元素.首先要有播放的进度信息,还有播放 ...

  4. 小甲鱼——编程初学者的救赎

    小甲鱼--编程初学者的救赎  关注"小甲鱼"已经好久了,很喜欢他的教学视频.刚才花了个把小时把他的一个视频整理了一下与大家一起分享,同时也算是给"小甲鱼"做一个 ...

  5. 小甲鱼python第六讲_小甲鱼Python第十七讲课后习题(示例代码)

    >>> MyFirstFunction.__doc__  #双低线 '函数文档在函数定义的最开头部分,用不记名字符串表示' 另外,我们用help()来访问这个函数也可以看到这个文档字 ...

  6. 小甲鱼第十九课:函数:我的地盘听我的课后总结

    0. 下边程序会输入什么? def next():print('我在next()函数里...')pre() def pre():print('我在pre()函数里...')next() 我在next( ...

  7. 考研C语言复习02(小甲鱼版本)

    递归 //递归必须要有结束条件,否则程序将崩溃 void recursion(void); void recursion(void){static int cpunt = 10;printf(&quo ...

  8. RPGMAKER游戏引擎基于JavaScript的插件制作(二)——如何理解插件,以及编写代码时的注意事项

    之前写的时候不想写这部分就先跳过了,于是拖到现在- 这篇主要作用是做一些细节上的整理,根据我的经验不断完善,也欢迎在评论中补充. 重要的知识放在重写方法部分. 2. 1如何理解插件 我认为读我这篇博客 ...

  9. 有5个人坐在一起,问第五个人多少岁?(每一个数字对应的年龄应由上一个数字的年龄决定,考虑采用递归函数解决。)

    有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他 说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第1个人大两岁.最 后问第1个人,他说是10岁.编写程 ...

最新文章

  1. 使用代理网络配置maven,显示导入失败的原因
  2. 附加到IIS进程调试页面
  3. linux下dd命令详解
  4. 2018/7/8-纪中某C组题【jzoj1619,jzoj1620,jzoj1621,jzoj1622】
  5. 华为机试——求int型正整数在内存中存储时1的个数
  6. 即使是菜鸟,也能配置出一个网站
  7. 自定义注解实现权限校验含义_厉害了!老大利用AOP实现自定义注解,半小时完成我三天工作量...
  8. 瑞友客户端无法建立跟远程计算机的连接,瑞友天翼终端错误信息的原因以及解决方法大全.doc...
  9. 粒子群优化算法(PSO)
  10. html5在线拍照,h5调用html5拍照上传功能
  11. IOC容器构造之资源文件定位源码分析
  12. ideaIU安装教程
  13. linux cat命令使用方法,Linux cat命令怎么使用
  14. HTML5游戏引擎(一)-egret引擎简介——一个开源免费的游戏框架
  15. 什么是ts(typeScript)
  16. 没有人比我更懂牛排……吧?
  17. 手机浏览器类型ua php,通过userAgent判断手机浏览器类型(示例代码)
  18. 20万、50万、100万的算法工程师,有什么区别?
  19. 在CSDN设置“关注博主即可阅读全文”方法增加粉丝量超简单
  20. Python从入门到实践

热门文章

  1. oracle内存管理模式amm,【读书笔记】ORACLE 内存管理
  2. WEB前端学习-合并单元格
  3. 麒麟操作系统+龙心 编译qt-arm
  4. Nginx之反向代理(三)
  5. 数梦工场7.5亿元都干点啥?
  6. 听话的苹果-第11届蓝桥杯Scratch选拔赛真题精选
  7. 利用numpy对矩阵进行归一化处理的方法
  8. [云数据中心] 《云数据中心网络架构与技术》读书笔记 第八章 构建云数据中心端到端安全
  9. 什么是memcache 及 php操作memcache基本操作
  10. FastFormers 论文解读:可以使Transformer 在CPU上的推理速度提高233倍