3043. 最长公共前缀的长度

This commit is contained in:
li_chx 2026-05-21 09:42:33 +08:00
parent 44ce8b9fd4
commit 25645920ff
Signed by: li_chx
GPG Key ID: C7CF27EFA1E58BAC
1 changed files with 27 additions and 19 deletions

View File

@ -1,30 +1,38 @@
mod arr;
struct Solution {}
use std::collections::HashSet;
impl Solution {
pub fn get_common(nums1: Vec<i32>, nums2: Vec<i32>) -> i32 {
let (mut a, mut b) = (0,0);
loop {
if nums1[a] == nums2[b] {
return nums1[a];
}
if nums1[a] < nums2[b] {
a += 1;
if a >= nums1.len() {
break;
}
} else {
b += 1;
if b >= nums2.len() {
break;
}
pub fn longest_common_prefix(arr1: Vec<i32>, arr2: Vec<i32>) -> i32 {
let mut map = HashSet::new();
for &x in &arr1 {
let mut x = x;
while x > 0 {
map.insert(x);
x /= 10;
}
}
-1
let get_length = |x : i32| -> i32 {
x.to_string().len() as i32
};
let mut max_length = 0;
for &x in &arr2 {
let mut x = x;
while x > 0 {
if map.contains(&x) {
max_length = max_length.max(get_length(x));
break;
}
x /= 10;
}
}
max_length
}
}
fn main() {
println!("{:?}", Solution::get_common(vec![1,2,3,6], vec![2,3,4,5]));
println!(
"{:?}",
Solution::longest_common_prefix(vec![1, 10, 100], vec![1000])
);
}