zoukankan      html  css  js  c++  java
  • Leetcode824.Goat Latin山羊拉丁文

    给定一个由空格分割单词的句子 S。每个单词只包含大写或小写字母。

    我们要将句子转换为 “Goat Latin”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。

    山羊拉丁文的规则如下:

    • 如果单词以元音开头(a, e, i, o, u),在单词后添加"ma"。

    例如,单词"apple"变为"applema"。

    • 如果单词以辅音字母开头(即非元音字母),移除第一个字符并将它放到末尾,之后再添加"ma"。

    例如,单词"goat"变为"oatgma"。

    • 根据单词在句子中的索引,在单词最后添加与索引相同数量的字母'a',索引从1开始。

    例如,在第一个单词后添加"a",在第二个单词后添加"aa",以此类推。

    返回将 S 转换为山羊拉丁文后的句子。

    示例 1:

    输入: "I speak Goat Latin" 输出: "Imaa peaksmaaa oatGmaaaa atinLmaaaaa"

    示例 2:

    输入: "The quick brown fox jumped over the lazy dog" 输出: "heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"

    说明:

    • S 中仅包含大小写字母和空格。单词间有且仅有一个空格。
    • 1 <= S.length <= 150。

    忘记判定元音大写的情况

    class Solution {
    public:
        string toGoatLatin(string S) {
            int len = S.size();
            if(len == 0)
                return "";
            string str = "";
            string temp = "";
            int cnt = 0;
            for(int i = 0; i < len; i++)
            {
                if(i == len - 1 || S[i] != ' ')
                {
                    temp += S[i];
                }
                if(S[i] == ' ' || i == len - 1)
                {
                    cnt++;
                    if(temp == "")
                        continue;
                    if(temp[0] == 'a' || temp[0] == 'e' || temp[0] == 'i' || temp[0] == 'o' || temp[0] == 'u'
                       || temp[0] == 'A' || temp[0] == 'E' || temp[0] == 'I' || temp[0] == 'O' || temp[0] == 'U')
                    {
                        temp += "ma";
                    }
                    else
                    {
                        char c = temp[0];
                        for(int j = 0; j < temp.size() - 1; j++)
                        {
                            temp[j] = temp[j + 1];
                        }
                        temp[temp.size() - 1] = c;
                        temp += "ma";
                    }
                    for(int j = 0; j < cnt; j++)
                    {
                        temp += 'a';
                    }
                    if(cnt != 1)
                        str += ' ';
                    str += temp;
                    temp = "";
                }
            }
            return str;
        }
    };
  • 相关阅读:
    .NET 去除一段文本中的HTML标记
    C#实现控件拖动窗口
    使用window.showModalDialog弹出窗口返回值(兼容IE、FF、chrome)
    IE浏览器报错出现stack overflow at line 0的解决办法
    用Python作GIS:原料篇
    winform 自定义控件:半透明Loading控件
    WPF 跟随鼠标动画 by wgscd
    C# 多线程 HTTP request
    VS2015 安装XAN
    C# 用QQ企业邮箱发邮件
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433944.html
Copyright © 2011-2022 走看看