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


    面试题

    假设有一个字符串,每个英文单词全部都是以首字母大写,之后有小写字母,现需要逐个反转每个单词。

    举例:

    输入:"MyNameIsTom"
    输出:"yMemaNsImoT"

    解决方案及代码:

    方法:1:

      思路把英文单词切割出来,切割的思路根据前面一个单词小写,后面一个单词大写,于是可以拆分单词;

      首先,判断字母是大写时,将前一个字符串追加的列表的末尾;

      其次,前一个字符串在拼接的时候,将小写字母往前加;

      再次,无论原字符串最后一个字母是大写还是小写,都需要追加的列表;

      最后,拼接成最终的字符串;

    代码:  

    a = "MyNameIsTom"
    l=[]
    s=""
    zs=""
    for i in range(len(a)):
    if a[i].isupper():
    if len(s)!=0:
    l.append(s)
    s=a[i]
    else:
    s=a[i]+s
    l.append(s)
    zs="".join(l)
    # for i in l:
    # zs+=i
    print(l)
    print(zs)

    运行结果:

    ['yM', 'emaN', 'sI', 'moT']
    yMemaNsImoT
    

    方法2:

    找到每个含大写字母的单词后,反转并拼接成最终的字符串;

    代码:

    a = "MyNameIsTom"
    s = ""
    zs=""
    for i in range(len(a)):
        if a[i].islower():
            s=a[i]+s #yM
        else:
            zs+=s #空,yM
            s=a[i] #M,N
        if i==len(a)-1:
            zs+=s
    print(zs)

    运行结果:

    yMemaNsImoT

    方法3:

    通过正则表达式,模糊匹配,找出大写字母;

    代码:

    import re
    a = "MyNameIsTom"
    zs=""
    dc=re.findall("[A-Z]{1}[a-z]+",a)
    print(dc)
    for i in dc:
        zs+=i[::-1]
    print(zs)

    运行结果:

    ['My', 'Name', 'Is', 'Tom']
    yMemaNsImoT
    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    Bootstrap 3 How-To #1 下载与配置
    一致性哈希算法及其在分布式系统中的应用
    哈希(Hash)与加密(Encrypt)的基本原理、区别及工程应用
    ASP.NET MVC3 系列教程
    浏览器对象模型BOM小结
    使用JS实现图片展示瀑布流效果
    利用JS实现购物网站商品放大镜效果
    js事件机制——事件冒泡和捕获
    js入门篇之正则表达式基础
    随机得到1-20之间的10个不相同的随机数
  • 原文地址:https://www.cnblogs.com/canglongdao/p/14905158.html
Copyright © 2020-2023  润新知