824. Goat Latin的C++算法

算法打败了100%的用户。

1.用unordered_set判断单词开头是不是元音。

2.一边找完整的单词,一边对单词里的字母进行换位置操作。时间复杂度只需要线性。

3.把末尾要添加的字母直接做成一个字符串,每次循环改一下即可。

4.要注意i的下标,S增加了词末字符串之后i的下标所指的位置会改变。

class Solution {
public:
	string toGoatLatin(string S) {
		unordered_set vowel = { 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U' };
		int i = 0;
		string sub;
		sub= "maa";
		while (i < S.length())
		{
			int j = i + 1;
			int isvowel = vowel.count(S[i]);
			char tmp = S[i];
			while ((S[j] != ' ') && (j

你可能感兴趣的:(LeetCode)