Welcome to Subscribe On Youtube
Formatted question description: https://leetcode.ca/all/2108.html
2108. Find First Palindromic String in the Array (Easy)
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.
Similar Questions:
Solution 1.
-
// OJ: https://leetcode.com/problems/find-first-palindromic-string-in-the-array/ // Time: O(NW) // Space: O(W) class Solution { public: string firstPalindrome(vector<string>& A) { for (auto &s : A) { string r(rbegin(s), rend(s)); if (r == s) return s; } return ""; } };
-
class Solution: def firstPalindrome(self, words: List[str]) -> str: def check(s): i, j = 0, len(s) - 1 while i < j: if s[i] != s[j]: return False i += 1 j -= 1 return True for word in words: if check(word): return word return '' ############ # 2108. Find First Palindromic String in the Array # https://leetcode.com/problems/find-first-palindromic-string-in-the-array/ class Solution: def firstPalindrome(self, words: List[str]) -> str: res = "" for x in words: if x == x[::-1]: return x return res
-
class Solution { public String firstPalindrome(String[] words) { for (var w : words) { boolean ok = true; for (int i = 0, j = w.length() - 1; i < j && ok; ++i, --j) { if (w.charAt(i) != w.charAt(j)) { ok = false; } } if (ok) { return w; } } return ""; } }
-
func firstPalindrome(words []string) string { for _, w := range words { ok := true for i, j := 0, len(w)-1; i < j && ok; i, j = i+1, j-1 { if w[i] != w[j] { ok = false } } if ok { return w } } return "" }
-
function firstPalindrome(words: string[]): string { for (const word of words) { let left = 0; let right = word.length - 1; while (left < right) { if (word[left] !== word[right]) { break; } left++; right--; } if (left >= right) { return word; } } return ''; }
-
impl Solution { pub fn first_palindrome(words: Vec<String>) -> String { for word in words.iter() { let s = word.as_bytes(); let mut left = 0; let mut right = s.len() - 1; while (left < right) { if (s[left] != s[right]) { break; } left += 1; right -= 1; } if left >= right { return word.clone(); } } String::new() } }
Solution 2.
-
// OJ: https://leetcode.com/problems/find-first-palindromic-string-in-the-array/ // Time: O(NW) // Space: O(1) class Solution { bool isPalindrome(string &s) { int i = 0, j = s.size() - 1; while (i < j && s[i] == s[j]) ++i, --j; return i >= j; } public: string firstPalindrome(vector<string>& A) { for (auto &s : A) { if (isPalindrome(s)) return s; } return ""; } };
-
class Solution: def firstPalindrome(self, words: List[str]) -> str: def check(s): i, j = 0, len(s) - 1 while i < j: if s[i] != s[j]: return False i += 1 j -= 1 return True for word in words: if check(word): return word return '' ############ # 2108. Find First Palindromic String in the Array # https://leetcode.com/problems/find-first-palindromic-string-in-the-array/ class Solution: def firstPalindrome(self, words: List[str]) -> str: res = "" for x in words: if x == x[::-1]: return x return res
-
class Solution { public String firstPalindrome(String[] words) { for (var w : words) { boolean ok = true; for (int i = 0, j = w.length() - 1; i < j && ok; ++i, --j) { if (w.charAt(i) != w.charAt(j)) { ok = false; } } if (ok) { return w; } } return ""; } }
-
func firstPalindrome(words []string) string { for _, w := range words { ok := true for i, j := 0, len(w)-1; i < j && ok; i, j = i+1, j-1 { if w[i] != w[j] { ok = false } } if ok { return w } } return "" }
-
function firstPalindrome(words: string[]): string { for (const word of words) { let left = 0; let right = word.length - 1; while (left < right) { if (word[left] !== word[right]) { break; } left++; right--; } if (left >= right) { return word; } } return ''; }
-
impl Solution { pub fn first_palindrome(words: Vec<String>) -> String { for word in words.iter() { let s = word.as_bytes(); let mut left = 0; let mut right = s.len() - 1; while (left < right) { if (s[left] != s[right]) { break; } left += 1; right -= 1; } if left >= right { return word.clone(); } } String::new() } }
Discuss
https://leetcode.com/problems/find-first-palindromic-string-in-the-array/discuss/1635048/C%2B%2B-Straightforward