B站知名up主何同学被指盗用开源项目,有点讽刺!

文摘   2024-11-21 14:08   湖北  
这是苍何的第 234 篇原创!

大家好,我是苍何。

B 站知名 up 主何同学近日发布了一个视频《我用 36 万行备忘录做了个动画…》,视频很火,但是更火的是其被指盗用开源项目,却声称「我们专门写了一个软件」,着实讽刺。

视频里展示的这个东西就是个电子翻页动画,具有相当吸引人的元素,不得不说,何同学视频选题总是能 get 到观众兴趣点。

本来是个爆款视频,这也没什么大不了,毕竟坐拥 1200W 粉丝,但问题就在于视频中有这段话:

所以我们专门写了一个软件,可以把预览动画里面的色块转换成字符,提高效率,但为了最自然的效果,前面白条,躲避障碍的动画,依然是一行一行画的。最后这个文档有36万。

然后评论区不知道哪个大神,看出了破绽,好家伙,这不是我在 GitHub 上看到的开源项目 ASCII generator 吗?

这是一个用于生成 ASCII 码的 Python 项目,支持图像转文本、图像转图像、视频转视频。截止目前已经有 3.7 k 的 star 了。

而网友发现何同学视频中的成品效果正是基于该开源项目实现:

这个项目基于的是最为宽松的 MIT 开源协议,虽然以简单和宽松的条款而著称,但尊重作者是最起码的道德底线,柯匡是坐拥 1200 W 粉丝的大 V,更加需要对此事负责。

更讽刺的是,不少人又去 issue 里面提自己的想法,我们知道,GitHub 是个全球的开源平台,这事本就挺丢脸的,还污染了 issue。有人说,丢脸丢到了国外。

借用网友的评论表达下自己的观点:

我觉得不必要开这么多 Issues 去污染这个项目,后面来的人不要再起新 Issue 了,真想讨论直接在一个 Issue 里发表下自己想法就好了。

开源软件使用没问题,但在公开场合是是自己开发的,就有些过分。虽然从现实考虑,可能何同学压根都没参与到代码。

可能给收下的小伙伴个需求,小伙直接找了个开源项目完美实现,你不问,我也不说,那就默认是自己实现了。

结果,视频发布,估计内部审核也不会给到写代码的程序员做审核,然后就发布出去了,要不是被挖出来,估计何同学怎么也想不到。

不过,截止目前,何同学已经做了澄清说明。

我们看到了大家在评论中关于字符画转制程序的讨论。我们视频中使用的字符转制程序确实是由开源项目ASCII-generator改动而来,改动的内容主要是优化字符生成比例、图片裁切方式和传参方式。视频中55秒的旁白“所以我们专门写了一个软件,可以把预览动画里的色块转换成字符”确实不严谨,非常抱歉在视频里没有指出这一点。之所以会出现这种情况,是因为我在写视频的文案时不够严谨,没有和相关同事做好沟通,并没有意识到这个程序是从开源程序改动而来,也没有尽到审稿义务,实在抱歉。我们已经对视频进行换源,修改了相关描述并增加引用来源,同时进行内部检讨,反思流程和审稿上的问题。衷心感谢大家的监督。

但是网友买不买单,就不得而知了。

我看过何同学几期的视频,说不上喜欢,也说不上讨厌,但确实作为科技博主,能科普一些知识,总归是不错的。

但这件事之后,估计何同学对视频审核会更加严格,至少你得给开发代码的程序员看看吧。🐶

不过这波,何同学亏不亏还不好说,借用网友的一句神评论:

毕竟人家本来是想装个 b,露个脸,结果不小心露个 p 股,虽然被喷,但是拿到了流量还有广告费全,大家继续喷,流量又来了。

话说,我要不要也开个账号,叫:我叫苍何同学?😂

对此,你怎么看?欢迎评论区讨论。

...

回归主题。

今天来一道简单面试算法题,给枯燥的牛马生活加加油😂。

题目描述

平台:LeetCode

题号:67

题目名称:二进制求和

题目描述
给你两个二进制字符串 ab,以二进制字符串的形式返回它们的和。

示例:

示例 1
输入:

a = "11", b = "1"

输出:

"100"

示例 2
输入:

a = "1010", b = "1011"

输出:

"10101"

提示:

  1. 1 <= a.length, b.length <= 10^4

  2. ab 仅由字符 '0''1' 组成。

  3. 字符串如果不是 "0",就不会含前导零。


解题思路

为了实现两个二进制字符串的求和,我们可以模拟人工加法的过程,从最低位到最高位逐位计算,并处理进位。具体步骤如下:

  1. 初始化变量

  • 使用一个变量 carry 保存进位值,初始为 0。

  • 使用一个字符串列表 result 保存每一位的计算结果。

  • 逐位计算

    • ab 的最低位(即字符串的末尾)开始逐位相加。

    • 对应位置的数字与进位 carry 相加,得到当前位的和。

    • 将该和取模 2 的结果加入 result,并更新进位 carry = 和 // 2

  • 处理未完的进位

    • 如果加完所有位后,carry 仍然为 1,则需在结果前加上 1

  • 返回结果

    • 将结果列表 result 逆序并拼接成字符串。

    时间复杂度

    • O (n),其中 n 为较长的字符串长度,因为需要遍历字符串中的每一位。

    空间复杂度

    • O (n),用于存储结果字符串。


    代码实现

    Java 代码

    public class BinarySum {
    public String addBinary(String a, String b) {
    StringBuilder result = new StringBuilder();
    int i = a.length() - 1, j = b.length() - 1, carry = 0;

    // 从最低位开始逐位相加
    while (i >= 0 || j >= 0 || carry != 0) {
    int digitA = (i >= 0) ? a.charAt(i--) - '0' : 0;
    int digitB = (j >= 0) ? b.charAt(j--) - '0' : 0;

    // 当前位的和
    int sum = digitA + digitB + carry;
    result.append(sum % 2); // 取模 2 得到当前位的值
    carry = sum / 2; // 更新进位
    }

    return result.reverse().toString(); // 结果需要反转
    }
    }

    C++代码

    #include <string>
    #include <algorithm>

    class Solution {
    public:
    std::string addBinary(std::string a, std::string b) {
    std::string result;
    int i = a.length() - 1, j = b.length() - 1, carry = 0;

    // 从最低位开始逐位相加
    while (i >= 0 || j >= 0 || carry != 0) {
    int digitA = (i >= 0) ? a[i--] - '0' : 0;
    int digitB = (j >= 0) ? b[j--] - '0' : 0;

    // 当前位的和
    int sum = digitA + digitB + carry;
    result.push_back((sum % 2) + '0'); // 取模 2 得到当前位
    carry = sum / 2; // 更新进位
    }

    std::reverse(result.begin(), result.end()); // 结果需要反转
    return result;
    }
    };

    Python 代码

    class Solution:
    def addBinary(self, a: str, b: str) -> str:
    result = []
    carry = 0
    i, j = len(a) - 1, len(b) - 1

    # 从最低位开始逐位相加
    while i >= 0 or j >= 0 or carry != 0:
    digitA = int(a[i]) if i >= 0 else 0
    digitB = int(b[j]) if j >= 0 else 0
    i, j = i - 1, j - 1

    # 当前位的和
    total = digitA + digitB + carry
    result.append(str(total % 2)) # 取模 2 得到当前位
    carry = total // 2 # 更新进位

    # 拼接结果并反转
    return ''.join(result[::-1])

    测试用例

    输入

    a = "1010"
    b = "1011"

    输出

    "10101"

    ending

    你好呀,我是苍何。是一个每天都在给自家仙人掌讲哲学的执着青年,我活在世上,无非想要明白些道理,遇见些有趣的事。倘能如我所愿,我的一生就算成功。共勉 💪

    点击关注下方账号,你将感受到一个朋克的灵魂,且每篇文章都有惊喜。


    感谢大家一直以来的阅读、在看和转发,我会把流量主收益都用来发红包,大家可在公众号页面发送相关暗号关键词获取抽奖,每一篇文章会给到一个不同的暗号,对应的抽奖都是独立的,此篇暗号为【何同学】,在后台回复【何同学】,即可点击进去参与抽奖!抽奖内容、金额、个数等都无变化,在开奖前参与抽奖,操作均有效。

    注意,后台(不是评论区,是后台)回复【何同学】即可参与抽奖。
    后台回复(不是评论区,是后台)即可参与抽奖。
    后台回复(不是评论区,是后台)即可参与抽奖。

    就像大家之前回复【八股】一样。

    【我爱这个魔幻的世界】

    苍何
    独立开发者,专注于Java企业级开发,AI 工具提效。偶尔闪光、经常表达、总是真诚。
     最新文章