38 lines
922 B
Rust
38 lines
922 B
Rust
|
/**
|
||
|
* [2129] Capitalize the Title
|
||
|
*/
|
||
|
pub struct Solution {}
|
||
|
|
||
|
|
||
|
// submission codes start here
|
||
|
|
||
|
impl Solution {
|
||
|
pub fn capitalize_title(title: String) -> String {
|
||
|
let mut words: Vec<&str> = title.split(' ').collect();
|
||
|
let mut result = String::new();
|
||
|
|
||
|
for word in words.iter_mut() {
|
||
|
if word.len() < 3 {
|
||
|
result = result + &word.to_lowercase() + " ";
|
||
|
} else {
|
||
|
result = result + &word[0..1].to_uppercase() + &word[1..].to_lowercase() + " ";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
result.trim().to_owned()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// submission codes end
|
||
|
|
||
|
#[cfg(test)]
|
||
|
mod tests {
|
||
|
use super::*;
|
||
|
|
||
|
#[test]
|
||
|
fn test_2129() {
|
||
|
assert_eq!("Capitalize The Title", Solution::capitalize_title("capiTalIze tHe titLe".to_owned()));
|
||
|
assert_eq!("First Letter of Each Word", Solution::capitalize_title("First leTTeR of EACH Word".to_owned()));
|
||
|
}
|
||
|
}
|