zoukankan      html  css  js  c++  java
  • C#类似版本号有多个分割符可以产生的排列组合,类似版本号比较

    我采用asp.net进行演示

    送给有缘人吧,可以获得类似版本号的功能,也可以对比两个版本号,我这里是其他需要用逗号分割的

    using System;
    
    public partial class _Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    var b = Request.QueryString["b"];
    if (string.IsNullOrEmpty(b))
    {
    b = "0,3,5";
    }
    
    var a = b;//GetNewBb("2,3,5", b);//没有解决低位重新计算
    while (a != "2,3,5")
    {
    b = a;
    a = GetNewVersion("2,3,5", b);
    Response.Write(a + "<br />");
    }
    }
    private string GetNewVersion(string max, string current,char separator=',')
    {
    var a = max.Split(separator);//分割字符
    var b = current.Split(separator);//分割字符2
    var flag = true;//设第一个大
    for (int i = a.Length - 1; i > 0; i--)
    {
    if (int.Parse(b[i]) < int.Parse(a[i]))
    {
    b[i] = (int.Parse(b[i]) + 1).ToString();
    break;
    }
    if (i - 1 >= 0&& int.Parse(b[i-1]) < int.Parse(a[i-1]))
    {
    for (var j = i; j < a.Length; j++)
    {
    b[j] = "0";
    }
    b[i-1] = (int.Parse(b[i-1]) + 1).ToString();
    break;
    }
    }
    
    for (int k = 0; k < a.Length-1; k++)
    {
    if (int.Parse(a[k]) < int.Parse(b[k]))
    {
    flag = false;//说明current是大的如果比较大小,改返回为bool,最后return flag即可
    break;
    }
    }
    return string.Join(",", b);
    }
    }
  • 相关阅读:
    数组中出现次数超过一半的数字
    Trie字典树算法
    字符串匹配算法 之 基于DFA(确定性有限自动机)
    实现栈最小元素的min函数
    有关有环链表的问题
    浅谈C中的malloc和free
    undefined reference to 'pthread_create'问题解决
    用两个栈实现队列
    resf规范
    单例模式
  • 原文地址:https://www.cnblogs.com/uxinxin/p/8888910.html
Copyright © 2011-2022 走看看