<p>You are given a string <code>sentence</code> that consist of words separated by spaces. Each word consists of lowercase and uppercase letters only.</p>

<p>We would like to convert the sentence to &quot;Goat Latin&quot; (a made-up language similar to Pig Latin.) The rules of Goat Latin are as follows:</p>

<ul>
	<li>If a word begins with a vowel (<code>&#39;a&#39;</code>, <code>&#39;e&#39;</code>, <code>&#39;i&#39;</code>, <code>&#39;o&#39;</code>, or <code>&#39;u&#39;</code>), append <code>&quot;ma&quot;</code> to the end of the word.

	<ul>
		<li>For example, the word <code>&quot;apple&quot;</code> becomes <code>&quot;applema&quot;</code>.</li>
	</ul>
	</li>
	<li>If a word begins with a consonant (i.e., not a vowel), remove the first letter and append it to the end, then add <code>&quot;ma&quot;</code>.
	<ul>
		<li>For example, the word <code>&quot;goat&quot;</code> becomes <code>&quot;oatgma&quot;</code>.</li>
	</ul>
	</li>
	<li>Add one letter <code>&#39;a&#39;</code> to the end of each word per its word index in the sentence, starting with <code>1</code>.
	<ul>
		<li>For example, the first word gets <code>&quot;a&quot;</code> added to the end, the second word gets <code>&quot;aa&quot;</code> added to the end, and so on.</li>
	</ul>
	</li>
</ul>

<p>Return<em> the final sentence representing the conversion from sentence to Goat Latin</em>.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>
<pre><strong>Input:</strong> sentence = "I speak Goat Latin"
<strong>Output:</strong> "Imaa peaksmaaa oatGmaaaa atinLmaaaaa"
</pre><p><strong class="example">Example 2:</strong></p>
<pre><strong>Input:</strong> sentence = "The quick brown fox jumped over the lazy dog"
<strong>Output:</strong> "heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"
</pre>
<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>1 &lt;= sentence.length &lt;= 150</code></li>
	<li><code>sentence</code> consists of English letters and spaces.</li>
	<li><code>sentence</code> has no leading or trailing spaces.</li>
	<li>All the words in <code>sentence</code> are separated by a single space.</li>
</ul>

class Solution {
public:
    string toGoatLatin(string sentence) {
        unordered_set<char> vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'};

        // Build output string
        string ret;

        // Iterate words of input sentence
        int word_count = 1;
        for (int i = 0; i < sentence.size(); i++) {
            bool starts_vowel = false;
            char stored_consonant;

            // Iterate chars of word
            int j = i;
            for (; j < sentence.size(); j++) {
                char c = sentence[j];

                if (c == ' ') {
                    break;
                }
                
                // if j == i, we are on first char. 
                if (j == i) {
                    if (vowels.contains(c)) {
                        // cout << "starts v" << endl;
                        starts_vowel = true;
                        ret += c;
                    } else {
                        stored_consonant = c;
                    }
                    // Don't want to add vowel 2x.
                    continue;
                }

                // Not first char of word
                ret += c;
            }

            // conditionally add consonant
            if (!starts_vowel) {
                ret += stored_consonant;
            }

            // unconditionall add ma
            ret += "ma";

            // add a's
            for (int k = 0; k < word_count; k++) {
                ret += "a";
            }

            if (j < sentence.size())
                ret += " ";

            word_count++;

            cout << ret << endl;

            // update i
            i = j;
            
        }

        return ret;

    }
};

// for each word.

// starts w/ vowel, add ma to end

// starts w/ cons, move first letter to end add ma to end

// always, add as many a's as word index (starting at 1)


// keep hash set of vowels

// iterate words (keep counter)
// manage cases 
8200