fn longest_common_prefix(lst: &mut Vec<&str>) -> String {
let size = lst.len();
if size == 0 {
return "".to_string();
}
if size == 1 {
return lst[0].to_string();
}
lst.sort();
let min_length = std::cmp::min(lst[0].len(), lst[size - 1].len());
let mut i = 0;
while i < min_length && lst[0].as_bytes()[i] == lst[size - 1].as_bytes()[i] {
i += 1;
}
lst[0][0..i].to_string()
}
fn main() {
let mut lst = vec!["programmer", "programming", "professional", "programmables"];
println!("{}", longest_common_prefix(&mut lst));
}
/*
run:
pro
*/