面试题-python3 英文单词全部都是以首字母大写,逐个反转每个单词
面试题
面试题:假设有一个字符串,每个英文单词全部都是以首字母大写,之后有小写字母,现需要逐个反转每个单词。
举例
输入:"MyNameIsTom"
输出:"yMemaNsImoT"
解决代码
首先第一步把英文单词切割出来,切割的思路根据前面一个单词小写,后面一个单词大写,于是就可以拆分单词。
单词拆分了接下来对单词反转就可以了, 整个思路用栈的思维来解决,简单画了下图
解决代码
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/
a = "MyNameIsTom"
aa = []
s = ""
for i in a:
if i.isupper():
# 如果是大写
if len(s) == 0:
s += i
else:
aa.append(s)
s = ''
s += i
else:
s += i
if len(s) > 0:
aa.append(s)
print(aa) # 得到列表['My', 'Name', 'Is', 'Tom']
# 对列表单词反转并大小写反转
result = []
for j in aa:
reverse_j = j[::-1]
result.append(reverse_j)
print("".join(result)) # yMemaNsImoT
正则匹配
第二种解决思路可以用正则表达式解决
import re
str1 = "MyNameIsTom"
str_list = re.findall("([A-Z]{1}[a-z]+)", str1)
# print(str_list) # 正则匹配全部单词
str2 = ''.join(i[::-1] for i in str_list)
print(str2)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2020-05-11 Cypress web自动化6- Assertions断言使用(should, expect)
2020-05-11 Cypress web自动化5-table表格元素(别名使用Aliasing)
2020-05-11 Cypress web自动化4-操作页面元素(Actions行为事件)
2020-05-11 Cypress web自动化3- 登录web网站案例脚本
2020-05-11 Cypress web自动化2-pycharm写第一个脚本
2019-05-11 appium+python自动化64-使用Uiautomator2执行driver.keyevent()方法报错解决
2018-05-11 appium+python自动化45-夜神模拟器连不上(adb server version (36) doesn't match this client (39); killing...)