zoukankan      html  css  js  c++  java
  • id生成唯一邀请码,及解码转成id

    public partial class InvitationCodeHelper
        {
            private const int CodeLenth = 6;
            private static char[] Source_Chars = new char[] { '9', 'P', 'L', 'M', '8', 'K', 'N', '7', 'J', 'B', '6', 'U', 'H', 'V', '5', 'T', 'G', 'C', '4', 'R', 'F', '3', 'E', 'D', 'Z', '2', 'W', 'S', 'Q', 'A' };
            private static char Default_Char = 'X';
    
            private static int Source_Chars_Lenght { get { return Source_Chars.Length; } }
    
            public static string IdToCode(long id)
            {
                long tempId = id;
                string code = "";
                long mod = 0;
                int length = Source_Chars_Lenght;
                StringBuilder sb = new StringBuilder();
                while (tempId > 0)
                {
                    mod = tempId % length;
                    tempId = (tempId - mod) / length;
                    code = Source_Chars[mod] + code;
    
                }
                return code.PadRight(CodeLenth, Default_Char);
            }
    
            public static long? CodeToId(string code)
            {
                if (string.IsNullOrWhiteSpace(code)) return null;
                string temp = code.ToUpper();
                int length = Source_Chars_Lenght;
                temp = new string((from s in temp where s != Default_Char select s).ToArray());
                long id = 0;
                for (int i = 0; i < temp.ToCharArray().Length; i++)
                {
                    for (int j = 0; j < length; j++)
                    {
                        if (temp.ToCharArray()[i] == Source_Chars[j])
                        {
                            id += j * Convert.ToInt64(Math.Pow(length, temp.ToCharArray().Length - i - 1));
                        }
                    }
                }
                return id;
            }
        }

    此随笔或为自己所写、或为转载于网络。仅用于个人收集及备忘。

  • 相关阅读:
    牢骚
    【题解】LFYZNoip前水题赛 T6
    【模板】 ST表
    【模板】高精度。。。。。
    【模板】堆优化 + dij +pair 存储
    【模板】树状数组
    近两天目标
    当堆遇到STL 代码焕发光芒
    【模板】并查集
    【NOI2000】 单词查找树
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/15357458.html
Copyright © 2011-2022 走看看