题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
use std::io::{self, *}; struct Point { x: i32, y: i32 } impl Point { fn move1(&mut self, cmd: &str) { if cmd.trim().len() == 0 {return} if !"WASD".contains(cmd.chars().nth(0).unwrap()) {return} if let Ok(d) = cmd[1..cmd.len()].trim().parse::<i32>() { match cmd.chars().nth(0).unwrap() { 'W' => self.y += d, 'A' => self.x -= d, 'S' => self.y -= d, 'D' => self.x += d, default => {} } } } fn moven(&mut self, cmds: &str) { for c in cmds.split(";") { self.move1(c); } } } fn main() { let stdin = io::stdin(); unsafe { for line in stdin.lock().lines() { let ll = line.unwrap(); let mut p = Point {x: 0, y: 0}; p.moven(ll.trim()); println!("{},{}", p.x, p.y) } } }