题解 | 坐标移动 - 2026 use struct to express x,y

坐标移动

https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text.RegularExpressions;

namespace testConsoleApp {
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

public class Program {
    public static void Main() {
        string line = Console.ReadLine();
        string[] listOfDirection = line.Split(';');
        var moveSystem = new MovingSystem();
        string pattern = @"^([WASD])(0?\d{1}|[1-9]\d{1})$";

        foreach (var directionUnit in listOfDirection) {
            if (null == directionUnit) continue;
            Match match = Regex.Match(directionUnit, pattern);
            if (match.Success) {
                var directinput = match.Groups[1].ToString();
                var lengthinput = Convert.ToInt32(match.Groups[2].ToString());
                //Console.WriteLine($"{directionUnit}");
                //Console.WriteLine($"{directinput}");
                //Console.WriteLine($"{lengthinput}");

                moveSystem.Move(directinput, lengthinput);
            }

        }

        var result = moveSystem.GetPosition();

        Console.WriteLine($"{result.x},{result.y}");
    }
}

public class MovingSystem {
    public struct VectorMoving {
        public int x;
        public int y;
    }

    public VectorMoving Position = new VectorMoving {x = 0, y = 0};

    public void Move(string input, int length) {
        switch (input) {
            case "W":
                Position.y += length;
                break;
            case "S":
                Position.y -= length;
                break;
            case "A":
                Position.x -= length;
                break;
            case "D":
                Position.x += length;
                break;
            default :
                break;
        }

    }

    public VectorMoving GetPosition() {
        return Position;
    }
}
}

全部评论

相关推荐

02-07 10:52
复旦大学 Java
混子不想混:非常能理解,感觉他们就靠着入行早,打压新人一样。我这个公司也是,天天干的累死累活,然后绩效打C,合着让新人被绩效,像是年底攒棺材本一样。总是打击之后,还会让人开始自我怀疑,是不是我努力的还不够,实际上并不是,就是他们不做人,故意打压新人。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务