zoukankan      html  css  js  c++  java
  • 20190118-利用Python实现Pig Latin游戏

    1.利用Python实现Pig Latin字母游戏

    “Pig Latin”是一个英语儿童文字改写游戏,整个游戏遵从下述规则:
    a. 元音字母是‘a’、‘e’、‘i’、‘o’、‘u’。字母‘y’在不是第一个字母的情况下,也被视作元音字母。其他字母均为辅音字母。例如,单词“yearly”有三个元音字母(分别为‘e’、‘a’和最后一个‘y’)和三个辅音字母(第一个‘y’、‘r’和‘l’)。
    b. 如果英文单词以元音字母开始,则在单词末尾加入“hay”后得到“Pig Latin”对应单词。例如,“ask”变为“askhay”,“use”变为“usehay”。(同上)
    c. 如果英文单词以‘q’字母开始,并且后面有个字母‘u’,将“qu”移动到单词末尾加入“ay”后得到“Pig Latin”对应单词。例如,“quiet”变为“ietquay”,“quay”变为“ayquay”。
    d. 如果英文单词以辅音字母开始,所有连续的辅音字母一起移动到单词末尾加入“ay”后得到“Pig Latin”对应单词。例如,“tomato”变为“omatotay”, “school” 变为“oolschay”,“you” 变为“ouyay”,“my” 变为“ymay ”,“ssssh” 变为“sssshay”。
    e. 如果英文单词中有大写字母,必须所有字母均转换为小写。
    输入格式:
    一系列单词,单词之间使用空格分隔。
    输出格式:
    按照以上规则转化每个单词,单词之间使用空格分隔。
    输入样例:
    Welcome to the Python world Are you ready
    输出样例:
    elcomeway otay ethay ythonpay orldway arehay ouyay eadyray
    Step1:先写出每个转换规则的算法
    def Pig_Latin(s):
        s=s.lower()
        #转换为小写
        if s[0] in 'aeiou':
            vowel_begin = True
        else:
            vowel_begin = False
        if vowel_begin:
            s = s+'hay'
        #以元音字母开始,则在单词末尾加入“hay”
        if s[0]=='q' and s[1] =='u':
            s =s[2:]+'quay'
        #以‘q’字母开始,并且后面有个字母‘u’,将“qu”移动到单词末尾加入“ay”
        end = 0
        for i in range(len(s)):
            if s[i] in 'aeiou' or (i>0 and s[i]=='y'):
                end = i
                break
        s=s[end:]+s[:end]+'ay'
        #以辅音字母开始,所有连续的辅音字母一起移动到单词末尾加入“ay”
        return s

    Step2:写一个主函数来实现输入格式和输出格式的转换

    输入格式:
    一系列单词,单词之间使用空格分隔。
    输出格式:
    按照以上规则转化每个单词,单词之间使用空格分隔。

    def transfer_main(str):
        s = str.split()
        result = []
        for i in s:
            result.append(Pig_Latin(i))
        new_s=' '.join(result)
        return new_s
    print(transfer_main('Welcome to the Python world Are you ready'))
  • 相关阅读:
    (最小路径覆盖) poj 1422
    (匈牙利算法) hdu 2119
    (匈牙利算法) hdu 4185
    (匈牙利算法) hdu 2063
    (匈牙利算法)hdu 1281
    (匈牙利算法DFS)hdu 3729
    (01 染色判奇环) hdu 3478
    (多重背包)poj 1276
    (判断欧拉回路)poj 1368
    (差分约束) hdu 1384
  • 原文地址:https://www.cnblogs.com/hyj691001/p/10289094.html
Copyright © 2011-2022 走看看