Skip to content

Latest commit

 

History

History
87 lines (69 loc) · 2.52 KB

README.md

File metadata and controls

87 lines (69 loc) · 2.52 KB

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/
// Author: github.com/lzl124631x
// 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 "";
    }
};

Solution 2.

// OJ: https://leetcode.com/problems/find-first-palindromic-string-in-the-array/
// Author: github.com/lzl124631x
// 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 "";
    }
};

Discuss

https://leetcode.com/problems/find-first-palindromic-string-in-the-array/discuss/1635048/C%2B%2B-Straightforward