leetcode每日一題 最長回文字串

2021-10-05 02:58:59 字數 749 閱讀 6031

一開始用暴力法,時間複雜度是o(n

3n^3

n3),結果顯而易見,tle,所以就去找了一下題解。

遍歷整個字串。

從第乙個開始,設定兩個標籤,分別標記回文串的左端和右端,同時要考慮兩種情況:

於是寫了下面的判定方法:

if(left>0 && s[left-1] == s[left])

if(right但是發現,這樣寫了以後,當出現輸入為奇數同一字元時,如「ccccc」,會出現輸出少一位的bug,即「cccc」,導致出錯,於是將兩個if更改為while,處理特殊情況:

while(left>0 && s[left-1] == s[left])

while(right整體**如下:

char * longestpalindrome(char * s);

int i;

for(i=0; i0 && s[left-1] == s[left])

while(right0 && right < k-1)

else break;

}if(len > max)

}static char b[1005];

int n = 0;

for(i=a[0]; i<=a[1]; i++)

b[n] = '\0';

return b;

}

時間複雜度為o(n

2n^2

n2),用到乙個輔助輸出的陣列,空間複雜度為o(n)。

每日一題 LeetCode

在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。示例 1 輸入 7,5,6,4 輸出 5 限制 0 陣列長度 50000 思想是 分治演算法 所有的 逆序對 於 3 個部分 左邊區間的逆序對 右邊區間的逆序對 橫跨兩個區間的...

LeetCode 每日一題 409 最長回文串

給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串。注意 假設字串的長度不會超過 1010。示例 1 輸入 abccccdd 輸出 7 解釋 我們可以構造的最長的回文串是 dccaccd 它的長度是 7。先來看...

leetcode每日一題5 21最長回文字串

給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 思路 emmmmmm這題我之前寫過了,就不過多敘述了。class solution boolean d...