新年的刷的第一題,題目如下:
給你乙個字串 s,找到 s 中最長的回文子串。
示例 1:
輸入:s = "babad"
輸出:"bab"
解釋:"aba" 同樣是符合題意的答案。
示例 2:
輸入:s = "cbbd"
輸出:"bb"
示例 3:
輸入:s = "a"
輸出:"a"
示例 4:
輸入:s = "ac"
輸出:"a"
1 <= s.length <= 1000
s 僅由數字和英文本母(大寫和/或小寫)組成
初始思路:
剛開始的想法是想每個字元開始向左右進行拓展,將全部的字元迴圈一遍,最後就可以找到最長的回文字串。但自己感覺這種方法時間複雜度太高了,就沒往下想了,唉,太不自信了。
答案思路:
答案寫的非常詳細,分了三種方法,第三種不講,有點複雜,首先要說的是和自己初始子路類似的解法-中心擴充套件演算法,廢話不多說,直接上**:
classsolution
/*對pair的用法不熟悉,還沒想過可以這樣用*/
return ;
}string longestpalindrome(string
s)
if(right2-left2>end-start)
}/*返回最長的回文字串,答案不唯一*/
return s.substr(start,end-start+1
); }
};
答案中介紹的第二種方法是動態規劃,直接看**:
classsolution
/*長度1的情況*/
else
if(len==1
)
/*其他情況*/
else
if(dp[i][i+len]&&len+1>strreturn.size())}}
return
strreturn;
}};
兩種演算法的時間和空間複雜度對比如下:
時間複雜度 空間複雜度
中心擴充套件演算法:o(n*n)o(1)
動態規劃:o(n*n) o(n*n)
leetcode hot100刷題第四天
二 搜尋旋轉排序陣列 leetcode 33 三 在排序陣列中查詢元素第乙個和最後乙個位置 leetcode 34 四 組合總和 leetcode 39 五 接雨水 leetcode 42 總結給定乙個只包含 和 的字串,找出最長的包含有效括號的子串的長度。示例 1 輸入 輸出 2 解釋 最長有效括...
leetcode hot 100 分割等和子集
給定乙個只包含正整數的非空陣列。是否可以將這個陣列分割成兩個子集,使得兩個子集的元素和相等。注意 每個陣列中的元素不會超過 100陣列的大小不會超過 200 示例 1 輸入 1,5,11,5 輸出 true 解釋 陣列可以分割成 1,5,5 和 11 示例 2 輸入 1,2,3,5 輸出 false...
100個最容易出錯的字
1.按 安 裝 2.甘敗 拜 下風 3.自抱 暴 自棄 4.針貶 砭 5.泊 舶 來品 6.脈博 搏 7.鬆馳 弛 8.一愁 籌 莫展 9.穿 川 流不息 10.精萃 粹 11.重迭 疊 12.渡 度 假村 13.防 妨 礙 14.幅 輻 射 15.一幅 副 對聯 16.天翻地覆 覆 17.言簡意駭...