繁体   English   中英

如何设置环境来解决 Visual Studio 中的 LeetCode 问题? C#

[英]How do I set up an environment to solve LeetCode problems in Visual Studio? C#

制作文件时,我正在考虑选择一个控制台应用程序。 但是我选择哪个目标框架? 这是不正确的吗? 此外,我无法弄清楚如何在类 Program 中创建一个能够在 Main 方法中调用的方法。 有人可以给我一些建议吗?

这将使您开始使用 Visual Studio:

  1. 创建一个新的控制台项目——使用最新版本的 C#,这可能是 VS 会“建议”给你的。 目前是 .NET 6 或 .NET 7

  2. 现代(net 6 或更高版本)控制台应用程序可让您立即开始编写代码。 可以创建一个方法,然后直接在您开始使用的这个小 Program.cs 文件中调用该方法。 但是,我可能会改为执行以下操作:

a)为您的“问题”创建一个新类

b) 在该类中创建一个解决问题的方法。

c) 在您的 Program.cs 添加一条 using 语句以使用您的新类使用的命名空间

d)在您的 program.cs 中实例化该类并调用其方法/测试其方法这是一个示例:

程序.cs

using LeetCodeProject;

var solver = new Problem001_CalculateSquareRoot();
var solution = solver.calculate_square_root(8);
Console.WriteLine(solution);

Console.WriteLine("Press any key...");
Console.ReadKey();

Problem001_CalculateSquareRoot.cs(解决了一个 leetcode 问题)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LeetCodeProject
{
    public class Problem001_CalculateSquareRoot
    {

        public double calculate_square_root(int number)
        {
            double root = 1;
            int i = 0;
            while (true)
            {
                i = i + 1;
                root = (number / root + root) / 2;
                if (i == number + 1)
                { 
                    break; 
                }
            }
            return root;
        }
    }
}

现在您可以为每个问题添加新类,并且在处理它们时只需编辑 Program.cs 以创建您当前正在使用的类并调用其解决方法。

我可以(并且会——实际上在类似的情况下)为此实现一个接口,但这里的目标不是进入 OO 设计原则,而是让你开始,这样你就可以开始解决 leetcode 问题。 ..一旦你完成了一些,你就可以开始考虑更好地组织代码。

您可以做的一件事是使用界面来保持代码干净; 例如 :

你创建一个这样的界面:

public interface IQuestionSolving
{
    public void Solution();
}

你创建了一些问题类:

public class Question1 : IQuestionSolving
{
    public void Solution()
    {

    }
}

你像这样使用它:

static void Main(string[] args)
    {
        IQuestionSolving solve = new Question1();
        solve.Solution();
        Console.ReadKey();
    }

现在每次你解决一个问题你都需要改变

IQuestionSolving solve = new Question1();

IQuestionSolving solve = new Question2(); // 2 3 4 .. etc

您可以将您的项目提取为模板,这样您就不必每次都这样做。 或者您可以只使用一种解决方案和许多类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM