C#算法从入门到跑路 第1章:栈的应用

2020/3/5 21:01:33

本文主要是介绍C#算法从入门到跑路 第1章:栈的应用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

括号匹配

/// <summary>
/// 判断括号匹配
/// </summary>
/// <param name="str">字符串</param>
/// <returns>返回是否匹配</returns>
public static bool BracketsJudge(string str)
{
    IStack<char> sk = new LinkStack<char>();
    for(int i=0;i<str.Length;++i)
    {
        char ch = str[i];
        if (ch == '(' || ch == '[' || ch == '{')
            sk.Push(ch);
        else if (ch == ')')
        {
            if (sk.Pop() != '(')
                return false;
        }
        else if (ch == ']')
        {
            if (sk.Pop() != '[')
                return false;
        }
        else if (ch == '}')
        {
            if (sk.Top != '{')
                return false;
            sk.Pop();
        }
    }
    return sk.IsEmpty();
}

进制转换

/// <summary>
/// 进制转换
/// </summary>
/// <param name="num">原始数字</param>
/// <param name="p" >进制数</param>
/// <returns>返回字符串</returns>
public static string From10(int num,int p)
{
    if (num == 0)
        return "0";
    IStack<int> sk = new LinkStack<int>();
    StringBuilder sb = new StringBuilder();
    while(num!=0)
    {
        sk.Push(num % p);
        num /= p;
    }
    while(!sk.IsEmpty())
    {
        var u=sk.Pop();
        if (u > 10)
            sb.Append((char)('A' + u - 10));
        else
            sb.Append((char)(u+48));
    }
    return sb.ToString();
}


这篇关于C#算法从入门到跑路 第1章:栈的应用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程