打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
面试题-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)

面试题-python3 字符串消消乐,将字符串中相邻相同的字符一起消掉

面试题-python3 连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组

面试题-python3 实现删除字符串中出现次数最少的字符

面试题-python3 找出一个字符串中所有子串是回文的次数

面试题-python3 找出列表中出现的所有连续数字

面试题-python3 找出一个字符串中子串,不含有重复字符的最长子串

python 面试题-收集100+面试题笔试题

2021年第七期《python接口自动化+测试开发》课程,4月18号开学(火热报名中!)

4月18号-7月11号,20:30-22:30

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
其实英语实在太简单了!
【算法千题案例】每日LeetCode打卡——99.山羊拉丁文
日积月累|带着小妞听写单词 第6周
二十六个英文字母教学——Aa
外语单词记忆秘诀
python实现自动刷题 | 码农家园
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服