Lifetimes in Rust ensure that references are valid for as long as they are needed. The Rust compiler uses lifetimes to prevent dangling references, ensuring memory safety at compile time without the need for a garbage collector.
A common scenario where lifetimes come into play is when working with functions that accept or return references. To ensure the correct association between input references and output references, lifetimes are explicitly annotated.
In this challenge, you'll implement a function that finds the longest string slice from two provided references. The function will use lifetimes to ensure that the returned reference is valid for as long as both input references are valid.
Write a function longest
that takes two string slices and returns the longest one. If both slices are of the same length, return the first one.
'a
. e.g
fn longest<'a>(first: &'a str, second: &'a str) -> &'a str {
// implementation goes here
}
.chars().count()
method.pub fn longest<'a>(first: &'a str, second: &'a str) -> &'a str { // implementation goes here if first.chars().count() > second.chars().count() { return first; } else if first.chars().count() < second.chars().count() { return second; } return first;}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(first:&'a str, second: &'a str) -> & 'a str { if first.chars().count() >= second.chars().count() { first } else { second }} // Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(str1: &'a str, str2: &'a str) -> &'a str { let l1 = str1.chars().count(); let l2 = str2.chars().count(); if l2 > l1 { return str2; } str1} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(first: &'a str, second: &'a str) -> &'a str { if &second.chars().count() > &first.chars().count() { return second; } first } // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(string1: &'a str, string2: &'a str) -> &'a str { // Finish the function let len1 = string1.chars().count(); let len2 = string2.chars().count(); if len1 == len2 { string1 } else if len1 > len2 { string1 } else { string2 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { return s1; } s2} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(first: &'a str, second: &'a str) -> &'a str { if first.chars().count() >= second.chars().count() { first } else { second }} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(slice1: &'a str, slice2: &'a str) -> &'a str { if slice1.chars().count() < slice2.chars().count() { slice2 } else { slice1 }} // Finish the function// Example usagepub fn main() { let s1 = "short"; { let s2 = "longer string"; let result = longest(s1, s2); assert_eq!(result, "longer string"); } let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(first: &'a str, second: &'a str) -> &'a str { if first.chars().count() >= second.chars().count() { first } else { second }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(slice1: &'a str, slice2: &'a str) -> &'a str { let length1 = slice1.chars().count(); let length2 = slice2.chars().count(); if length1 >= length2 { return slice1; } else { return slice2; }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { // Finish the function if s1.chars().count() >= s2.chars().count() { s1 } else { s2 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { // Finish the function if s1.chars().count() >= s2.chars().count() { return &s1; } return &s2;}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { s1 } else { s2 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(in1: &'a str, in2: &'a str) -> &'a str { // Finish the function if in1.chars().count() >= in2.chars().count() { in1 } else { in2 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { if x.chars().count() >= y.chars().count() { x } else { y }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { if x.chars().count() >= y.chars().count() { x } else { y }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str{ if s1.chars().count() >= s2.chars().count() { s1 } else { s2 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(val1: &'a str, val2: &'a str) -> &'a str { if val1.chars().count() >= val2.chars().count() { val1 } else { val2 }} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { let s1_len = s1.chars().count(); let s2_len = s2.chars().count(); match s1_len.cmp(&s2_len){ std::cmp::Ordering::Equal => s1, std::cmp::Ordering::Greater => s1, std::cmp::Ordering::Less => s2, }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(a: &'a str, b: &'a str) -> &'a str { if a.chars().count() >= b.chars().count() { a } else { b }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(a: &'a str, b: &'a str) -> &'a str{ match a.chars().count() < b.chars().count() { true => b, false => a }} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s2.chars().count() > s1.chars().count() { s2 } else { s1 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s2.chars().count() > s1.chars().count() { s2 } else { s1 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(a: &'a str, b: &'a str) -> &'a str { if a.chars().count() >= b.chars().count() { a } else { b }} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(first: &'a str, second: &'a str) -> &'a str { if first.chars().count() >= second.chars().count() { first } else { second }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a> (s1: &'a str, s2: &'a str) -> &'a str { // Finish the function if s1.chars().count() < s2.chars().count() { s2 } else { s1 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1:&'a str, s2:&'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { return s1; } return s2;} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a, 'b>(s1: &'a str, s2: &'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { s1 } else { s2 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(a: &'a str, b: &'a str) -> &'a str{ if a.chars().count() < b.chars().count() { b } else { a } }// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(a: &'a str, b: &'a str) -> &'a str { println!("{}", include_str!("../tests/tests.rs")); if a.chars().count() >= b.chars().count() { a } else { b }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { s1 } else { s2 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(first: &'a str, second: &'a str) -> &'a str { if second.chars().count() > first.chars().count() { second } else { first }} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1:&'a str, s2:&'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { s1 } else { s2 }} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(a: &'a str, b: &'a str) -> &'a str { if a.chars().count() >= b.chars().count() { a } else { b }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { s1 } else { s2 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { return s1; } else { return s2; }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { return s1; } s2}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1 : &'a str , s2 : &'a str)-> &'a str{ if s1.chars().count() >= s2.chars().count(){ s1 } else { s2 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { return s1; } return s2;}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { s1 } else { s2 }} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest // Finish the functionWrite a function longest that takes two string slices and returns the longest one. If both slices are of the same length, return the first one.<'a>(s1:&'a str,s2:&'a str)->&'a str{ if s1.chars().count() >= s2.chars().count(){ s1 }else{s2}}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1 : &'a str, s2: &'a str) -> &'a str { if (s1.chars().count() >= s2.chars().count()) { s1 } else { s2 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(first_str: &'a str , second_str: &'a str)-> &'a str{ if first_str.chars().count() >= second_str.chars().count() { return first_str; } second_str }// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(substr_one: &'a str, substr_two: &'a str) -> &'a str { match (substr_one, substr_two) { (a, b) if a.chars().count() >= b.chars().count() => a, (_, b) => b }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(first: &'a str, second: &'a str) -> &'a str { if first.chars().count() >= second.chars().count() { first } else { second }} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(slice1 :&'a str, slice2: &'a str) -> &'a str { if slice1.chars().count() >= slice2.chars().count() { slice1 } else { slice2 }}// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1:&'a str, s2:&'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { s1 } else { s2 }} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(one: &'a str, two: &'a str) -> &'a str { if one.chars().count() >= two.chars().count() { one } else { two }} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { s1 } else { s2 }}// Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}
pub fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s1.chars().count() >= s2.chars().count() { return s1 } s2} // Finish the function// Example usagepub fn main() { let s1 = "short"; let s2 = "longer string"; let result = longest(s1, s2); println!("The longest string is: {}", result); assert_eq!(result, "longer string"); let s3 = "equal"; let s4 = "equal"; let result = longest(s3, s4); println!("The longest string is: {}", result); assert_eq!(result, "equal");}