Last letter-first letter: Difference between revisions

Content added Content deleted
m (Add trans note for Rust)
m (→‎{{header|Rust}}: Remove a few non-idiomatic constructions and run through rustfmt.)
Line 4,001: Line 4,001:
name: &'static str,
name: &'static str,
first: char,
first: char,
last: char
last: char,
}
}


Line 4,007: Line 4,007:
fn new(name: &'static str) -> Pokemon {
fn new(name: &'static str) -> Pokemon {
let mut chars = name.chars();
let mut chars = name.chars();
return Pokemon {
Pokemon {
name,
name,
first: chars.next().unwrap(),
first: chars.next().unwrap(),
last: chars.last().unwrap()
last: chars.last().unwrap(),
}
}
}
}
Line 4,020: Line 4,020:
max_path_length_count: usize,
max_path_length_count: usize,
max_path_example: String,
max_path_example: String,
pokemon: Vec<Pokemon>
pokemon: Vec<Pokemon>,
}
}


Line 4,048: Line 4,048:


fn main() {
fn main() {
let pokemon_names = ["audino", "bagon", "baltoy", "banette", "bidoof",
let pokemon_names = [
"audino",
"braviary", "bronzor", "carracosta", "charmeleon", "cresselia",
"bagon",
"croagunk", "darmanitan", "deino", "emboar", "emolga",
"baltoy",
"exeggcute", "gabite", "girafarig", "gulpin", "haxorus",
"banette",
"heatmor", "heatran", "ivysaur", "jellicent", "jumpluff",
"bidoof",
"kangaskhan", "kricketune", "landorus", "ledyba", "loudred",
"braviary",
"lumineon", "lunatone", "machamp", "magnezone", "mamoswine",
"bronzor",
"nosepass", "petilil", "pidgeotto", "pikachu", "pinsir",
"carracosta",
"poliwrath", "poochyena", "porygon2", "porygonz", "registeel",
"charmeleon",
"relicanth", "remoraid", "rufflet", "sableye", "scolipede",
"cresselia",
"scrafty", "seaking", "sealeo", "silcoon", "simisear",
"croagunk",
"snivy", "snorlax", "spoink", "starly", "tirtouga",
"darmanitan",
"trapinch", "treecko", "tyrogue", "vigoroth", "vulpix",
"deino",
"wailord", "wartortle", "whismur", "wingull", "yamask"];
"emboar",
"emolga",
"exeggcute",
"gabite",
"girafarig",
"gulpin",
"haxorus",
"heatmor",
"heatran",
"ivysaur",
"jellicent",
"jumpluff",
"kangaskhan",
"kricketune",
"landorus",
"ledyba",
"loudred",
"lumineon",
"lunatone",
"machamp",
"magnezone",
"mamoswine",
"nosepass",
"petilil",
"pidgeotto",
"pikachu",
"pinsir",
"poliwrath",
"poochyena",
"porygon2",
"porygonz",
"registeel",
"relicanth",
"remoraid",
"rufflet",
"sableye",
"scolipede",
"scrafty",
"seaking",
"sealeo",
"silcoon",
"simisear",
"snivy",
"snorlax",
"spoink",
"starly",
"tirtouga",
"trapinch",
"treecko",
"tyrogue",
"vigoroth",
"vulpix",
"wailord",
"wartortle",
"whismur",
"wingull",
"yamask",
];


let mut app = App {
let mut app = App {
pokemon: pokemon_names.iter().map(|name| Pokemon::new(name)).collect(),
pokemon: pokemon_names.iter().map(Pokemon::new).collect(),
..App::default()
..App::default()
};
};
Line 4,077: Line 4,135:
println!("Paths of that length: {}", app.max_path_length_count);
println!("Paths of that length: {}", app.max_path_length_count);
println!("Example path of that length: {}", app.max_path_example);
println!("Example path of that length: {}", app.max_path_example);
}
}</lang>
</lang>
Recommend you run as `release` or at least with `opt-level=1`
Recommend you run as `release` or at least with `opt-level=1`
{{out}}
{{out}}
Line 4,085: Line 4,144:
Example path of that length: machamp pinsir rufflet trapinch heatmor remoraid darmanitan nosepass starly yamask kricketune exeggcute emboar relicanth haxorus simisear registeel landorus seaking girafarig gabite emolga audino
Example path of that length: machamp pinsir rufflet trapinch heatmor remoraid darmanitan nosepass starly yamask kricketune exeggcute emboar relicanth haxorus simisear registeel landorus seaking girafarig gabite emolga audino
</pre>
</pre>

=={{header|Scala}}==
=={{header|Scala}}==
===Naive===
===Naive===