1. 程式人生 > 其它 >LeetCode 每日一題(5. 最長迴文子串)

LeetCode 每日一題(5. 最長迴文子串)

class Solution {
public:
    string longestPalindrome(string s) {
        if (s.size() <= 1){
            return s;
        }

        int a = 0;  //記錄臨時值
        int length = 0;

        int ta = 1; //滑動視窗邊界
        int tb = 0;

        int t = 0;

        bool flag = false;  //匹配標記

        const char* p = s.c_str();
        
for(int i=0;i<s.size();i++){ for(int j = i + length;j<s.size();j++){ t = (j-i+1); tb = t/2; for(int k =i;k<(i+tb);k++){ if (p[k] != p[j - k + i]) { flag = true;
break; } } if (!flag){ if (t > length){ a = i; length = t; } } flag = false; } }
if (a == 0 && length == 0) { length = 1; } return s.substr(a,length); } };