Description

A sentence S is given, composed of words separated by spaces. Each word consists of lowercase and uppercase letters only.

We would like to convert the sentence to "Goat Latin" (a made-up language similar to Pig Latin.)

The rules of Goat Latin are as follows:

  • If a word begins with a vowel (a, e, i, o, or u), append "ma" to the end of the word.

    For example, the word 'apple' becomes 'applema'.

  • If a word begins with a consonant (i.e. not a vowel), remove the first letter and append it to the end, then add "ma".

    For example, the word "goat" becomes "oatgma".

  • Add one letter 'a' to the end of each word per its word index in the sentence, starting with 1.

    For example, the first word gets "a" added to the end, the second word gets "aa" added to the end and so on.

Return the final sentence representing the conversion from S to Goat Latin.

Example 1:

Input: "I speak Goat Latin"
Output: "Imaa peaksmaaa oatGmaaaa atinLmaaaaa"

Example 2:

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

Notes:

  • S contains only uppercase, lowercase and spaces. Exactly one space between each word.
  • 1 <= S.length <= 150.

Analyse

  • 如果单词以元音(a,e,i,o,u)开头,在这个单词末尾增加"ma"

    "apple" -> "applema"

  • 如果单词以辅音开头,将单词第一个字母移动到末尾,然后在单词结尾增加"ma"

    "goat" -> "oatg" -> "oatgma"

  • 对每个单词,增加单词的序号个"a"到单词的末尾,序号从1开始

    "a b c" -> "ama bma cma" -> "amaa bmaaa cmaaaa"

简单题,直接上代码

string toGoatLatin(string S)
{
stringstream ss(S);
string tmp;
string result;
int index = 1; while (ss >> tmp)
{
if (tmp[0] == 'a' || tmp[0] == 'A' ||
tmp[0] == 'e' || tmp[0] == 'E' ||
tmp[0] == 'i' || tmp[0] == 'I' ||
tmp[0] == 'o' || tmp[0] == 'O' ||
tmp[0] == 'u' || tmp[0] == 'U')
{
tmp.append("ma");
}
else
{
string first = tmp.substr(0, 1);
tmp.erase(0, 1);
tmp.append(first + "ma");
} if (index != 1) result += " ";
result += (tmp + string(index, 'a'));
index++;
} return result;
}

最新文章

  1. MRC下多个对象的内存管理
  2. Oracle基本数据字典:v$database、v$instance、v$version、dba_objects
  3. Android随笔:属性
  4. Html-Css-iframe的使用
  5. Ubuntu输入密码登陆后又跳回到登录界面
  6. 套题T2
  7. SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-006-给bean运行时注入值(Environment,Property文件)
  8. 关于group by
  9. stm32之USART通信
  10. Vue 自定义图片懒加载指令v-lazyload
  11. 简单易懂的单元测试框架-gtest(二)
  12. DNS Tunnel隧道隐蔽通信实验 &amp;&amp; 尝试复现特征向量化思维方式检测
  13. Java泛型相关总结(上)
  14. Individual Reading Assignment
  15. [转][C#]拆分参数对
  16. freetype教程网址
  17. 201621123018《Java程序设计》第4周学习报告
  18. redis集群配置及运行命令(windows和centos)附Python测试范例代码
  19. 关于es6箭头函数
  20. c之指针与数组(1)

热门文章

  1. 牛客2018多校第六场 J Heritage of skywalkert - nth_element
  2. CF1007B Pave the Parallelepiped 容斥原理
  3. codeforces 807 D. Dynamic Problem Scoring(贪心+思维)
  4. MySQL连接方式小结
  5. 牛客网暑期ACM多校训练营(第三场)---A.PACM Team
  6. Ubuntu系统添加用户权限
  7. 为什么Hashtable ConcurrentHashmap不支持key或者value为null
  8. Hbase与传统关系型数据库对比
  9. 【学习笔记】第六章 python核心技术与实践--深入浅出字符串
  10. Django跳转到不同的页面的方法和实例–使用Django建立你的第一个网站