some more problems
This commit is contained in:
25
longest-palindromic-substring/sol.py
Normal file
25
longest-palindromic-substring/sol.py
Normal file
@@ -0,0 +1,25 @@
|
||||
class Solution:
|
||||
def longestPalindrome(self, s: str) -> str:
|
||||
max_palindrome = ""
|
||||
for idx in range(len(s)):
|
||||
l, r, odd, even = idx, idx, True, True
|
||||
while odd or even:
|
||||
if odd:
|
||||
if r == len(s) or s[l] != s[r]:
|
||||
odd = False
|
||||
if r - l - 1 > len(max_palindrome):
|
||||
max_palindrome = s[l + 1:r]
|
||||
if even:
|
||||
if r == len(s) - 1 or s[l] != s[r + 1]:
|
||||
even = False
|
||||
if r - l > len(max_palindrome):
|
||||
max_palindrome = s[l + 1:r + 1]
|
||||
if l == 0:
|
||||
if even and r - l + 2 > len(max_palindrome):
|
||||
max_palindrome = s[l:r + 2]
|
||||
elif odd and r - l + 1 > len(max_palindrome):
|
||||
max_palindrome = s[l:r + 1]
|
||||
break
|
||||
l -= 1
|
||||
r += 1
|
||||
return max_palindrome
|
38
longest-palindromic-substring/sol.rs
Normal file
38
longest-palindromic-substring/sol.rs
Normal file
@@ -0,0 +1,38 @@
|
||||
impl Solution {
|
||||
pub fn longest_palindrome(s: String) -> String {
|
||||
let mut max = "";
|
||||
let bytes = s.as_bytes();
|
||||
for idx in 0..s.len() {
|
||||
let (mut l, mut r, mut odd, mut even) = (idx, idx, true, true);
|
||||
while odd || even {
|
||||
if odd {
|
||||
if r == s.len() || bytes[l] != bytes[r] {
|
||||
odd = false;
|
||||
if r - l - 1 > max.len() {
|
||||
max = s.get(l + 1..r).unwrap();
|
||||
}
|
||||
}
|
||||
}
|
||||
if even {
|
||||
if r == s.len() - 1 || bytes[l] != bytes[r + 1] {
|
||||
even = false;
|
||||
if r - l > max.len() {
|
||||
max = s.get(l + 1..r + 1).unwrap();
|
||||
}
|
||||
}
|
||||
}
|
||||
if l == 0 {
|
||||
if even && r - l + 2 > max.len() {
|
||||
max = s.get(l..r + 2).unwrap();
|
||||
} else if odd && r - l + 1 > max.len() {
|
||||
max = s.get(l..r + 1).unwrap();
|
||||
}
|
||||
break;
|
||||
}
|
||||
l -= 1;
|
||||
r += 1;
|
||||
}
|
||||
}
|
||||
max.to_string()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user