D60 824. Goat Latin
题目链接
题目分析
给定一个句子,由大小写英文字母组成,以空格为单词的分割。
按以下规则修改单词:
- 如果一个单词以元音开头(即AEIOU),那么在这个单词末尾添加
ma
; - 如果不是以元音开头,那么将第一个字母移动到当前单词末尾,并在后面添加
ma
; - 在所有单词末尾再额外添加n个
a
。n为当前单词在句子中的次序,从1开始。即,在第1个单词按以上规则转换完成后,再加1个a。在第2个单词末尾加2个a,第3个加3个a,以此类推。
思路
首先,需要把句子分割成单词。用str_explode就可以实现。
分割后,判断首字母是否不是元音。
不是元音,则将第一个字母移到最后。
给字符串末尾添加ma
。
给字符串末尾添加额外的n
个a
。
最终代码
<?php
class Solution {
/**
* @param String $S
* @return String
*/
function toGoatLatin($S) {
$words = explode(' ', $S);
$newWords = [];
foreach($words as $key => $word){
if(!in_array($word[0],['a','e','i','o','u','A','E','I','O','U'])){
$word .= $word[0];
$word = substr($word,1);
}
$word .= 'ma'.str_repeat('a', $key+1);
$newWords[] = $word;
}
return implode(' ', $newWords);
}
}
若觉得本文章对你有用,欢迎用爱发电资助。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。