Is it a strong word?
JavaScript (ES6), 36 28 27 bytes

Saved 1 byte by inverting the result, as suggested by LarsW

Takes input in lowercase. Returns false for a strong word and true for a non-strong word.

s=&gt;/[^aeiouy]{2}/.test(s+0)


How?

We append a 0 (non-vowel) at the end of the input string and look for two consecutive non-vowel characters. This allows us to cover both cases that make a word not strong:


it contains two consecutive consonants
or it ends with a consonant


Test cases



let f =

s=&gt;/[^aeiouy]{2}/.test(s+0)

;[
  "hate", "love", "popularize", "academy", "you", "mouse", "a", "euouae",
  "acorn", "nut", "ah", "strong", "false", "parakeet"
]
.forEach(s =&gt; console.log(s + ' --&gt; ' + f(s)))