You get a vector of words, words. Return the words that are palindromes, in the same order.
A palindrome reads the same from left to right and from right to left, like "noon". A word with one letter is a palindrome too. If no word is a palindrome, the result is empty.
The work is split between two functions. The first one is a helper. It gets one word and returns true if it is a palindrome, false if not. The second one is the function that is graded. It keeps the words for which the helper returns true.
The helper compares the letters from both ends of the word, in one loop. Don't use a built-in function that reverses the word.
Example 1:
Input: words = ["pup", "cat", "noon", "dog"] Output: ["pup", "noon"] Explanation: The words "pup" and "noon" read the same both ways. Read backwards, "cat" is "tac". Read backwards, "dog" is "god".
Example 2:
Input: words = ["a", "bob", "abba", "ab"] Output: ["a", "bob", "abba"] Explanation: The word "a" has one letter, so it is a palindrome. Read backwards, "ab" is "ba".
Example 3:
Input: words = ["kitten", "parrot"] Output: [] Explanation: No word reads the same both ways.
Constraints:
wordshas at least one word.- Every word has 1 to 20 lowercase letters.
- A word can appear more than once. Each palindrome is kept every time it appears.
Free plan: 30 tutor messages. PRO is unlimited.
