fn matches_pattern(pattern: &str, sentence: &str) -> bool {
let words: Vec<&str> = sentence
.split_whitespace()
.collect();
// Length mismatch → automatic failure
if pattern.len() != words.len() {
return false;
}
// Compare each pattern character to the first letter of each word
for (p, w) in pattern.chars().zip(words.iter()) {
if p.to_ascii_lowercase() != w.chars().next().unwrap().to_ascii_lowercase() {
return false;
}
}
true
}
fn main() {
let pattern = "jpcrg";
let sentence = "java python c rust go";
if matches_pattern(pattern, sentence) {
println!("Pattern matches!");
} else {
println!("Pattern does NOT match.");
}
}
/*
run:
Pattern matches!
*/