{Algo} base64补全

根据base64的原理,它占用的字符数一定是4的整数。不够4字符的,用=来填充。请写一个算法。
.net code

class TestString
{
    public string Fill(string str)
    {
        return string.Format("{0}{1}", str, "=".Multi((uint)(4 - str.Length % 4)%4));
    }
}

static class StringExtends
{
    public static string Multi(this string self, uint n)
    {
        if (n == 0)
            return string.Empty;

        if (n>255)
            throw new ArgumentException("n is too big");

        if (n == 1)
            return self;

        if (n == 2)
            return self + self;

        if (n == 3)
            return self + self + self;

        if (n == 4)
            return self + self + self + self;

        var sb = new StringBuilder();
        for (int i=0;i<n;++i)
        {
            sb.Append(self);
        }

        return sb.ToString();
    }
}

python code

def fill(base64):
    return base64 + "="*((4-len(base64)%4)%4)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,388评论 25 708
  • 文/Bruce.Liu1 1.Python前世今生 1.1.Python历史 Python的创始人: Guido ...
    BruceLiu1阅读 12,464评论 3 119
  • 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入...
    小小不懂11阅读 3,548评论 2 30
  • 个人笔记,方便自己查阅使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik阅读 67,954评论 0 5
  • 浏览器环境异步队列 结果: 3 4 6 8 7 5 2 1 事件的注册顺序如下:setImmediate - se...
    KeKeMars阅读 1,461评论 2 5

友情链接更多精彩内容