824. Goat Latin

2023-12-21 15:58
文章标签 latin 824 goat

本文主要是介绍824. Goat Latin,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

824. 山羊拉丁文

给定一个由空格分割单词的句子 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

解法一

//时间复杂度O(n), 空间复杂度O(n)
class Solution {
public:string toGoatLatin(string S) {string word = "", res = "";unordered_set<char> us({'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'});int i = 1;for(char c : S) {if(c == ' ') {if(word.empty()) continue;if(!us.count(word[0]))word = word.substr(1, word.size() - 1) + word[0];word += "ma" + string(i++, 'a');res += word + ' ';word = "";}else word += c;}if(!word.empty()) {if(!us.count(word[0]))word = word.substr(1, word.size() - 1) + word[0];word += "ma" + string(i++, 'a');res += word + ' ';}return res.substr(0, res.size() - 1);}
};

解法一类似第819题(最常见的单词)。遍历输入字符串S,遇到非字母词就开始处理word;否则只是简单地把当前字母追加到word。

注意处理最后一个单词。

2019/07/10 13:02

这篇关于824. Goat Latin的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/520601

相关文章

leetcode解题思路分析(九十四)818 - 824 题

赛车 你的赛车起始停留在位置 0,速度为 +1,正行驶在一个无限长的数轴上。(车也可以向负数方向行驶。)你的车会根据一系列由 A(加速)和 R(倒车)组成的指令进行自动驾驶 。现在给定一个目标位置,请给出能够到达目标位置的最短指令列表的长度。 class Solution {public:int racecar(int target) {queue<pair<int,int>>que;set<

hive学习2:Hive drop table卡住的问题,mysql字符集修改了latin,但是还是不行解决方案

刚开始接触hive,在删除表时卡住了,根据网上播客修改mysql字符集为latin,测试后还是不行,给下修改mysql字符串地址:修改mysql字符串地址      我这边修改后是还是无法删除,搞了大半个小时还是不行,最后,只能报着试试的心态升级mysql驱动jar试试,成功了,我之前的旧的jar版本是mysql-connector-java-5.1.6.jar 替换为mysql-con

sql数据库质疑修复:数据库824错误

今天接到一个客户的电话说:现有置疑数据库 .mdf和.ldf文件,这个数据库没有任何备份,在生产中发现数据库是质疑的状态,无法使用,发现问题之后 客户首先想到把质疑的sql数据库拿到另一台机器上尝试恢复。

用友U8数据库修复用友t3数据库修复用友/823错误824错误/检测到基于一致性的逻辑 I O 错误/ tempdb 空间用尽或某一系统表不一致

【用友数据库】 数据库报错 对数据库DBCC Checkdb修复,报“消息211,级别23,状态51,第1 行 可能发生了架构损坏。请运行DBCC CHECKCATALOG。”       用友U8企业门户软件对应的SQL SERVER 数据库异常复杂,表与表之间环环相扣,国内大部分数据恢复公司使用软件修复后虽然能够拿到数据,但是在U8企业门户软件里仍然无法使用!

python3 pymysql 'latin-1' codec can't encode character 错误 问题解决

完整代码: #coding: utf-8 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","root","00000000","TESTDB" ,use_unicode=True, charset="utf8") # 若没有 use_unicode=True, charset="utf8" 那么就会发生如

专业140+总分420+华中科技大学824信号与系统考研经验电子信息与通信工程,真题,大纲,参考书。

今年考研分数自己感觉还是比较满意,专业824信号与系统考的最好140+,总分420+,如愿上岸华科,回顾自己的这一年的复习,总结一些自己的经验,希望对报考华科的同学有帮助。 专业课: 824信号与系统在国内考研专业课中应该算难度很大,第一梯队顶尖的难度,除了那几个天花板比如中科大。第一个是题量,计算量非常大。第二个是题目新颖程度每年题目都不同,需要对知识理论和应用有很深的挖掘和理解运用。第

沃尔玛Walmart EDI解决方案之824报文解读

在与沃尔玛Walmart进行EDI对接的第一步,是根据自己的业务类型及国家选择所适用的EDI规范,完成EDI mapping(映射)。关于这一步骤的介绍,详见文章沃尔玛WalmartEDI连接、测试流程详解。本文主要带大家解读如下情形的EDI 824(Application Advice)报文:与沃尔玛Walmart的Business Type为Goods for Resale – B2B Ret

matplotlib保存eps出错:'latin-1'codec can't encode characters in position 9-12:ordinal not in range(256)

原因:保存路径含有中文。 matplotlib保存eps的两种方法: 1. 图片右上角保存按钮 2. 代码方式 out_fig = plt.gcf()out_fig.savefig('out.eps', format='eps', dpi=1000)

Goat in the Garden 2http://acm.timus.ru/problem.aspx?space=1num=1348

题意:给你一个山羊,问你山羊能吃到草需要拉伸的最小距离,和山羊能吃完草所要拉伸的最小距离 思路:首先求一点到一条线段距离要考虑垂线是否落在线段上,如果落在线段上,利用海伦公式求出高h即可,如果不在则求出该点到两个端点最短距离即可。注意a和b重合时要单独考虑。 AC代码: #include<iostream>#include<cstdio>#include<cmath>#includ