--- ###### tags: `Leetcode` --- # Leetcode 2108. Find First Palindromic String in the Array [link](https://leetcode.com/problems/find-first-palindromic-string-in-the-array/) --- Given an array of strings words, return the first palindromic string in the array. If there is no such string, return an empty string "". A string is palindromic if it reads the same forward and backward. #### Example 1: Input: words = ["abc","car","ada","racecar","cool"] Output: "ada" Explanation: The first string that is palindromic is "ada". Note that "racecar" is also palindromic, but it is not the first. #### Example 2: Input: words = ["notapalindrome","racecar"] Output: "racecar" Explanation: The first and only string that is palindromic is "racecar". #### Example 3: Input: words = ["def","ghi"] Output: "" Explanation: There are no palindromic strings, so the empty string is returned. #### Constraints: - 1 <= words.length <= 100 - 1 <= words[i].length <= 100 - words[i] consists only of lowercase English letters. --- Iterating the word in given words then using two pointers to determine whether that word is a palindromic string. #### Solution 1 ```python= class Solution: def firstPalindrome(self, words: List[str]) -> str: def helper(element): l = 0 r = len(element) - 1 while l < r: if element[l] == element[r]: l += 1 r -= 1 else: return "" return element for word in words: res = helper(word) if res != "": return res else: continue return res ``` O(T): O(N^2) O(S): O(1) --- Using Slice notation `[a:b:c]` to determine whether the word in words list is a palindromic string. #### Solution 2 ```python= class Solution: def firstPalindrome(self, words: List[str]) -> str: for word in words: if word == word[::-1]: return word return "" ``` O(T): O(n) O(S): O(1)