Python:每日一题85

2017-11-27 14:41:00
六月
来源:
85http://bbs.fishc.com/thread-95233-1-1.html
转贴 681
题目:
编写一个字符串处理函数,1)如果输入的字符串不包含元音字母(aeiouAEIOU)则输出这个字符且首字符小写其他大写;2)如果输入的字符串包含元音字母,则输入这个字符串且首个元音字母后面紧跟的一个辅音字母(非aeiouAEIOU)大写,其他小写,如果是连续元音字母则后推到后面第一个辅音字母;3)如果输入的字符串包含元音字母,按照2)无法找到辅音字母则输出这个字符串且全体大写。
  1. def fun(string):
  2.     pass

  3. print(fun('str'))
  4. print(fun('FishC'))
  5. print(fun('boolean'))
  6. print(fun('too'))
复制代码

  1. sTR
  2. fiShc
  3. booLean
  4. TOO
复制代码


楼主的解法:
  1. def fun(string):
  2.     vowel = set('aeiou')
  3.     string = string.lower()
  4.     if not set(string) & vowel:
  5.         return string[0] + string[1:].upper()
  6.     for i in range(len(string) - 1):
  7.         if (string[i] in vowel) and (string[i + 1] not in vowel):
  8.             return string[:i + 1] + string[i + 1].upper() + string[i + 2:]
  9.     else:
  10.         return string.upper()
复制代码
发表评论
评论通过审核后显示。