mirror of
https://github.com/Manoj-HV30/dsa-competitive-programming.git
synced 2026-05-16 19:35:22 +00:00
Leetcode day 2 and 3
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
class Solution{
|
||||
public:
|
||||
string LongestPalindrome(string s){
|
||||
for(int length= s.size();i>0;i--){
|
||||
for(int start = 0;start<=s.size()-length;start++){
|
||||
if(check(s,start,start+length))
|
||||
return s.substr(start,length);
|
||||
}
|
||||
}
|
||||
}
|
||||
private: bool check(string s, int i, int j){
|
||||
int left = i;
|
||||
int right = j-1;
|
||||
while(left<right){
|
||||
if(s[left]!=S[right])
|
||||
return false;
|
||||
left++;
|
||||
right--;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
||||
@@ -0,0 +1,41 @@
|
||||
class Solution{
|
||||
public:
|
||||
string LongestPalindrome(string s){
|
||||
if(s.empty()) return "";
|
||||
string t = "#";
|
||||
for(char c : s){
|
||||
t+=c;
|
||||
t+="#";
|
||||
}
|
||||
int n = t.size();
|
||||
vector<int> p(n,0);
|
||||
int C =0;
|
||||
int R =0;
|
||||
|
||||
for(int i=0;i<n;i++){
|
||||
int mirror = 2*C-i;
|
||||
|
||||
if(i<R){
|
||||
p[i] = min(R-i, p[mirror]);
|
||||
}
|
||||
while(i+p[i]+1<n && i-p[i]-1>=0 && t[i+p[i]+1] == t[i-p[i]-1]){
|
||||
p[i]++;
|
||||
}
|
||||
if(i+p[i]>R){
|
||||
C = i;
|
||||
R = i+p[i];
|
||||
}
|
||||
|
||||
}
|
||||
int maxLen = 0;
|
||||
int centerIndex = 0;
|
||||
for(int i =0;i<n;i++){
|
||||
if(p[i]>maxLen){
|
||||
maxLen = p[i];
|
||||
centerIndex = i;
|
||||
}
|
||||
}
|
||||
int start = (centerIndex-maxLen)/2;
|
||||
return s.substr(start, maxLen);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user