前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题-python3 英文单词全部都是以首字母大写,逐个反转每个单词

面试题-python3 英文单词全部都是以首字母大写,逐个反转每个单词

作者头像
上海-悠悠
发布2021-05-17 16:42:07
6830
发布2021-05-17 16:42:07
举报

面试题

面试题:假设有一个字符串,每个英文单词全部都是以首字母大写,之后有小写字母,现需要逐个反转每个单词。 举例 输入:”MyNameIsTom” 输出:”yMemaNsImoT”

解决代码

首先第一步把英文单词切割出来,切割的思路根据前面一个单词小写,后面一个单词大写,于是就可以拆分单词。 单词拆分了接下来对单词反转就可以了, 整个思路用栈的思维来解决,简单画了下图

解决代码

代码语言:javascript
复制
# 作者-上海悠悠 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

正则匹配

第二种解决思路可以用正则表达式解决

代码语言:javascript
复制
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)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 面试题
  • 解决代码
  • 正则匹配
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档