LeetCode 809: Expressive Words
Pass by const reference to prevent copying and modification:
int expressiveWords(std::string const&amp; base_string, std::vector&lt;string&gt; const&amp; words)
                                ^^^^^^                                  ^^^^^^

bool is_stretchable(std::string const&amp; base_string, std::string const&amp; words)
                                ^^^^^^                          ^^^^^^


    for (auto const&amp; word : words)
              ^^^^^^

This prevents the strings being copied into the function. It will also catch situations were you accidentally try and modify the string.

Please add braces {} around sub blocks.
It will save you one day without you even knowing. Issues caused by missing braces are notoriously hard to find because they are caused when sombody else does something nasty that affects your code (multi line macros come to mind).

One variable per line:
   int left_a = 0, right_a = 0;

Its not going to hurt you to add an extra line and it makes the job easier for the next person.

Not sure it is worth it.
But just to be complete you could use a standard algorithm to count.
    int count = 0;

    for (auto &amp;word : words)
        if (is_stretchable(base_string, word))
            count++;

    return count;

    // ---

    return std::count(std::begin(words), std::end(words),
                      [&amp;base_string, this](auto const&amp; word){return is_stretchable(base_string, word);});