add initial data

This commit is contained in:
timeshifter committed 2026-09-04 15:56:45 +02:00
1 parent 048a82b101
commit 51d935d06b
66 files changed
+1329

No files matched your search

+7
View File
@@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "leetcode"
version = "0.1.0"
@@ -0,0 +1,6 @@
[package]
name = "leetcode"
version = "0.1.0"
edition = "2024"
[dependencies]
@@ -0,0 +1,64 @@
fn main() {
println!("Hello, world!");
}
pub fn longest_palindrome(s: String) -> String {
let mut best = Vec::with_capacity(s.len());
let bytes = s.as_bytes();
for center in 0..bytes.len() {
for (mut left_idx, mut right_idx) in [(center, center), (center, center + 1)] {
expand(bytes, &mut left_idx, &mut right_idx);
if right_idx - left_idx > best.len() {
best = bytes[left_idx..right_idx].into();
}
}
}
String::from_utf8(best).unwrap()
}
fn expand(bytes: &[u8], left_idx: &mut usize, right_idx: &mut usize) {
loop {
if bytes.get(*right_idx).is_none_or(|&r| bytes[*left_idx] != r) {
*left_idx += 1;
return;
}
match left_idx.checked_sub(1) {
Some(new_left) => *left_idx = new_left,
None => {
*right_idx += 1;
return;
}
}
*right_idx += 1;
}
}
#[cfg(test)]
mod tests {
use crate::longest_palindrome;
#[test]
fn test_1() {
assert!(
["aba".to_string(), "bab".to_string()]
.contains(&longest_palindrome("babad".to_string()))
);
}
#[test]
fn test_2() {
assert_eq!(longest_palindrome("cbbd".to_string()), "bb".to_string());
}
#[test]
fn test_3() {
assert_eq!(longest_palindrome("whdqcudjpisufnrtsyupwtnnbsvfptrcgvobbjglmpynebblpigaflpbezjvjgbmofejyjssdhbgghgrhzuplbeptpaecfdanhlylgusptlgobkqnulxvnwuzwauewcplnvcwowmbxxnhsdmgxtvbfgnuqdpxennqglgmspbagvmjcmzmbsuacxlqfxjggrwsnbblnnwisvmpwwhomyjylbtedzrptejjsaiqzprnadkjxeqfdpkddmbzokkegtypxaafodjdwirynzurzkjzrkufsokhcdkajwmqvhcbzcnysrbsfxhfvtodqabvbuosxtonbpmgoemcgkudandrioncjigbyizekiakmrfjvezuzddjxqyevyenuebfwugqelxwpirsoyixowcmtgosuggrkdciehktojageynqkazsqxraimeopcsjxcdtzhlbvtlvzytgblwkmbfwmggrkpioeofkrmfdgfwknrbaimhefpzckrzwdvddhdqujffwvtvfyjlimkljrsnnhudyejcrtrwvtsbkxaplchgbikscfcbhovlepdojmqybzhbiionyjxqsmquehkhzdiawfxunguhqhkxqdiiwsbuhosebxrpcstpklukjcsnnzpbylzaoyrmyjatuovmaqiwfdfwyhugbeehdzeozdrvcvghekusiahfxhlzclhbegdnvkzeoafodnqbtanfwixjzirnoaiqamjgkcapeopbzbgtxsjhqurbpbuduqjziznblrhxbydxsmtjdfeepntijqpkuwmqezkhnkwbvwgnkxmkyhlbfuwaslmjzlhocsgtoujabbexvxweigplmlewumcone".to_string()), "wfdfw".to_string());
}
#[test]
fn test_4() {
assert_eq!(longest_palindrome("a".to_string()), "a".to_string());
}
}