Skip to content

Commit e4c17bf

Browse files
committed
12/22/2020
1 parent 4c48327 commit e4c17bf

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ leetcode practise solution in rust
101101
|496|[Next Greater Element I](src/_0496_next_greater_element_i.rs)|
102102
|503|[Next Greater Element II](src/_0503_next_greater_element_ii.rs)|
103103
|509|[Fibonacci Number](src/_0509_fibonacci_number.rs)|
104+
|516|[Longest Palindromic Subsequence](src/_0516_longest_palindromic_subsequence.rs)|
104105
|518|[Coin Change 2](src/_0518_coin_change_2.rs)|
105106
|520|[Detect Capital](src/_0520_detect_capital.rs)|
106107
|532|[K-diff Pairs in an Array](src/_0532_kdiff_pairs_in_an_array.rs)|

src/_0516_longest_palindromic_subsequence.rs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,29 @@ struct Solution;
22

33
impl Solution {
44
pub fn longest_palindrome_subseq(s: String) -> i32 {
5-
0
5+
let s = s.as_bytes();
6+
let n = s.len();
7+
let mut dp: Vec<Vec<i32>> = vec![vec![0; n]; n + 1];
8+
9+
for i in 0..n {
10+
dp[1][i] = 1;
11+
}
12+
13+
for length in 2..=n {
14+
for start in 0..=n - length {
15+
dp[length][start] = if s[start] == s[start + length - 1] {
16+
dp[length - 2][start + 1] + 2
17+
} else {
18+
dp[length - 1][start].max(dp[length - 1][start + 1])
19+
}
20+
}
21+
}
22+
dp[n][0]
623
}
724
}
25+
26+
#[test]
27+
fn test() {
28+
assert_eq!(Solution::longest_palindrome_subseq("bbbab".to_string()), 4);
29+
assert_eq!(Solution::longest_palindrome_subseq("cbbd".to_string()), 2);
30+
}

src/_0518_coin_change_2.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,8 @@ impl Solution {
1616
}
1717

1818
#[test]
19-
fn test() {}
19+
fn test() {
20+
assert_eq!(Solution::change(5, vec![1, 2, 5]), 4);
21+
assert_eq!(Solution::change(3, vec![2]), 0);
22+
assert_eq!(Solution::change(10, vec![10]), 1);
23+
}

0 commit comments

Comments
 (0)