山羊拉丁文

2021-09-25 03:24:13 字數 1122 閱讀 3073

給定乙個由空格分割單詞的句子 s。每個單詞只包含大寫或小寫字母。

我們要將句子轉換為 「goat latin」(一種類似於 豬拉丁文 - pig latin 的虛構語言)。

山羊拉丁文的規則如下:

如果單詞以子音字母開頭(即非母音字母),移除第乙個字元並將它放到末尾,之後再新增"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。

首先建立乙個陣列用來存放結果,使用malloc()來申請記憶體。

演算法實現

建立頭指標和尾指標,將頭指標與尾指標中間的部分複製到新的陣列,之後對尾部進行完善處理。

頭指標與尾指標的值由空字元確定:

遍歷字串查詢空字元。

頭指標初始值為字串首位址,之後每次設為空字元的下乙個位址。

尾指標為空字元前乙個位址。

char * togoatlatin(char * s) 

else

for (size_t j = 0; j < (unsigned)cnt; j++)

if (*s == ' ')

r[idx++] = ' ';

start = s + 1;

} }return r;

}

山羊拉丁文

1.題目描述 給定乙個由空格分割單詞的句子 s。每個單詞只包含大寫或小寫字母。我們要將句子轉換為 goat latin 一種類似於 豬拉丁文 pig latin 的虛構語言 山羊拉丁文的規則如下 如果單詞以子音字母開頭 即非母音字母 移除第乙個字元並將它放到末尾,之後再新增 ma 例如,單詞 goa...

山羊拉丁文

一 題目解釋 字串 給定乙個由空格分割單詞的句子s。每個單詞只包含大寫或小寫字母。單詞 如果乙個單詞以母音開頭 即aeiou或aeiou 那麼在這個單詞末尾新增ma如果不是以母音開頭,那麼將第乙個字母移動到當前單詞末尾,並在後面新增ma在所有單詞末尾再額外新增n個a。n為當前單詞在句子中的次序,從1...

LeetCode 山羊拉丁文

題目如下 點此讀題 題目還算淺顯易懂,思路一看也能夠清晰理順。首先以split空格分割字串,判斷每個單詞首字母是否為元,是將其移至末尾。根據單詞的位置,在以上基礎的單詞上分別新增ma和n個a,將修改完的單詞重新以空格為間隔拼接為字串。按部就班來即可 如下 class solution if str....