首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Reck Zhang

    LeetCode 0087 - Scramble String

    Scramble String Desicription Given a string s1, we may represent it as a binary tree by partitioning great": great / \ gr eat / \ / \ g r e at / \ a t To scramble

    34330发布于 2021-08-11
  • 来自专栏计算机视觉与深度学习基础

    Leetcode 87 Scramble String

    great": great / \ gr eat / \ / \ g r e at / \ a t To scramble 状态为dp[i][j][len],其中i是s1的起始字符,j是s2的起始字符,而n是当前的字符串长度,整个状态表示以i和j分别为s1和s2起点的长度为len的字符串是否为Scramble String。

    663100发布于 2018-01-12
  • 来自专栏算法修养

    Scramble String

    我都状态数组是dp[i1][j1][i2][j2],表示第一个字符串的i1到j1区间和第二个字符串的i2到j2区间,是符合条件,是可以旋转转换的。

    45240发布于 2019-12-04
  • 来自专栏JNing的专栏

    Scramble String

    great # / \ # gr eat # / \ / \ # g r e at # / \ # a t # To scramble

    45510发布于 2018-09-27
  • 来自专栏蛮三刀的后端开发专栏

    Scramble String扰乱字符串

    题目大意 https://leetcode-cn.com/problems/scramble-string/description/ 给出两个等长的字符串 s1 和 s2,判断 s2 是否是

    60330发布于 2019-03-26
  • 来自专栏玩转全栈

    没想到吧?Grammarly 竟然有开源(白嫖)替代品,而且更好用!

    今天就来聊聊这款叫做 Scramble 的工具,开源且更灵活。免费开源,还要啥自行车?首先得说,Scramble 是一款完全开源的工具。这意味着什么? Scramble 不仅功能强大,还尊重用户的隐私。它并不会像一些大公司一样,把你输入的文字上传到云端进行处理。对于那些注重隐私的用户来说,Scramble 无疑是个更好的选择。 另外,Scramble 支持多语言检查,这对那些需要用不同语言写作的人来说,非常友好。你再也不用频繁切换工具来检查不同语言的错误了,Scramble 一站式搞定。 Scramble,写作质量不再烦恼Scramble 作为 Grammarly 的开源替代品,确实给了我们不少惊喜。它不仅免费、开源,还尊重用户隐私,功能强大且灵活。 项目地址:https://github.com/zlwaterfield/scramble

    1.2K10编辑于 2024-09-19
  • 来自专栏张伦聪的技术博客

    87. 扰乱字符串

    s1 = "great", s2 = "rgeat" 输出: true 示例 2: 输入: s1 = "abcde", s2 = "caebd" 输出: false 解1:递归来解比较简单,s1和s2是scramble 的话,那么必然存在一个长度l将s1和s2同时划分为长度为l和length-l的子字符串,假设两个子字符串分别为s11,s12,s21,s22,这是要么s11和s21是scramble且s12和s22是scramble 或者s11和s22是scramble且s12和s21是scramble的。 F[i][j][k]; ++q) { //跟上面递归一个道理,要么s11和s21是scramble且s12和s22是scramble或者s11和s22 是scramble且s12和s21是scramble的。

    43110编辑于 2022-10-26
  • 来自专栏我的独立博客

    Mysql身份认证过程

    crypt := sha1.New() crypt.Write([]byte(password)) stage1 := crypt.Sum(nil) // scrambleHash = SHA1(scramble crypt.Reset() crypt.Write(stage1) hash := crypt.Sum(nil) // outer Hash crypt.Reset() crypt.Write(scramble ) crypt.Write(hash) scramble = crypt.Sum(nil) // token = scrambleHash XOR stage1Hash for i := range scramble { scramble[i] ^= stage1[i] } return scramble } Client通过Handshake Response Packet发送给Server 通讯过程简析 同样Server端会先返回一个随机数,Client生成认证字符串的算法为XOR(SHA256(password), SHA256(SHA256(SHA256(password)), scramble

    1.6K00编辑于 2025-01-11
  • 来自专栏数据库相关

    MySQL原生密码认证

    MySQL的密码认证过程 服务器发送scramble到客户端 当客户端的连接初始化完成或者收到客户端的COM_CHANGE_USER命令后,服务器会发送一个随机的字符串给客户端。 这个随机的字符窜代码中称作scramble。它是用来产生一个一次性加密秘钥的。 key = sha1(scramble|stage2hash) 客户端和服务器之间通过这个秘钥来加密传输认证信息。 客户端发送加密的stage1hash到服务器 客户端将收到的scramble和stage2hash一起再次进行哈希,产生出的哈希值用作加密秘钥。 key = sha1(scramble|stage2hash) 接着将stage1hash加密后,发送给服务器。stage1hash是将密码用SHA1哈希一次后产生的哈希值。 网络被监听 通过网络传输的只有scramble随机字符串和加密的stage1hash。因为每次使用的秘钥都不同,所以监听者没办法获取stage1hash或者利用这个加密的stage1hash进行认证。

    1.4K50发布于 2019-09-17
  • 来自专栏奔跑的蛙牛技术博客

    Deno如何实现Mysql中间件

    image // **** 验证流程 **** // 1、mysql.user中存储的是两次sha1加密过后的stage2hash // 2、服务端发送随机字符串scramble到客服端并且mysqld 利用stage2hash+scramble进行一次sha1操作,生成key。 // 3、客户端利用用户输入pwd生成stage2hash,加上mysqld发送过来的scramble进行一次sha1操作,生成和mysqld相同的key。 export function authPwd(password:string,scramble:Unit8Array){ // 客服发送验证信息 const hash = new Hash ); scrambleAndPwdDigest.set(pwdDigestTwice, scramble.length); scrambleAndPwdDigest = hash.digest

    93220发布于 2020-02-10
  • 来自专栏大大刺猬

    MYSQL caching_sha2_password 加密原理和连接过程(FULL)

    generate digest_stage2: SHA2(digest_stage1)")); return true; } /* SHA2(digest_stage2, m_rnd) => scramble_stage1 "SHA2(digest_stage2, m_rnd)")); return true; } /* XOR(digest_stage1, scramble_stage1 ) => scramble */ for (uint i = 0; i < m_digest_length; ++i) scramble[i] = (digest_stage1[i] ^ scramble_stage1 [i]); mysql_native_password源码在 sql/auth/password.cc void scramble(char *to, const char *message, const create crypt string as sha1(message, hash_stage2) */; compute_sha1_hash_multi((uint8 *)to, message, SCRAMBLE_LENGTH

    3.6K00编辑于 2023-03-29
  • 来自专栏飞鸟的专栏

    故障分析 | 从一则错误日志到 MySQL 认证机制与 bug 的深入分析

    authorization_id = user1\000% |—> g_caching_sha2_password->fast_authenticate(authorization_id,*scramble m_cache.search(authorization_id, digest) // 根据 user、host 搜索密码,赋值到digest |—> Validate_scramble validate_scramble_first(scramble, digest.digest_buffer[0], random, random_length); | —> validate_scramble_first.validate(); // 校验 scramble // 如验证成功 |—> vio->write_packet

    1.1K70编辑于 2023-04-13
  • [oceanbase] ob_native_password 加密原理

    . * When login, server sends random scramble str. * Client gets the scramble, use this logic to generate login rsp: * stage1 = sha1(passwd) * stage2 = sha1(stage1) * scrambled_stage2 = sha1(scramble_got_from_server scrambled_stage2) * **/int ObEncryptedHelper::encrypt_password(const ObString &raw_pwd, const ObString &scramble_str

    31620编辑于 2024-12-30
  • 来自专栏Reck Zhang

    LeetCode 0079 - Word Search

    Scramble String Desicription Given a string s1, we may represent it as a binary tree by partitioning great": great / \ gr eat / \ / \ g r e at / \ a t To scramble

    22830发布于 2021-08-11
  • 来自专栏数据科学(冷冻工厂)

    视觉Transformers中的位置嵌入 - 研究与应用指南

    np.random.seed(21) scramble_order = np.random.permutation(N) left_x = np.tile(np.arange(0, W-P+1, 20) ), 3) top_y = np.repeat(np.arange(0, H-P+1, 20), 5) bottom_y = np.repeat(np.arange(P, H+1, 20), 5) scramble = np.zeros_like(mountains) for i in range(N): t = scramble_order[i] scramble[top_y[i]:bottom_y [i]+1), color='w', fontsize='xx-large', ha='center') i3 = np.where(scramble_order==2)[0][0] plt.text (x_text[i3], y_text[i3], str(scramble_order[i3]+1), color='k', fontsize='xx-large', ha='center'); #plt.savefig

    44010编辑于 2024-03-12
  • 来自专栏爱可生开源社区

    故障分析 | 从一则错误日志到 MySQL 认证机制与 bug 的深入分析

    authorization_id = user1\000% |—> g_caching_sha2_password->fast_authenticate(authorization_id,*scramble m_cache.search(authorization_id, digest) // 根据 user、host 搜索密码,赋值到digest |—> Validate_scramble validate_scramble_first(scramble, digest.digest_buffer[0], random, random_length); |— > validate_scramble_first.validate(); // 校验 scramble // 如验证成功 |—> vio->write_packet

    92720编辑于 2023-04-11
  • 南京观海微电子---PCIe协议接口

    物理层(PhysicalLayer):主要职责是处理所有的数据物理传输,发送端数据分发到各个Lane传输(stripe),接收端把各个Lane上的数据汇总起来(De-stripe),每个Lane上加扰(Scramble ,目的是让0和1分布均匀,去除信道的电磁干扰EMI)去扰(De-scramble),以及8/10或者128/130编码解码,等等。

    1.1K10编辑于 2025-12-08
  • 来自专栏爱可生开源社区

    技术分享 | 使用 RPM 部署 Oceanbase Proxy

    false,skip_proxy_sys_private_check=true,log_dir_size_threshold=10G,proxy_mem_limited=2G,enable_proxy_scramble false,skip_proxy_sys_private_check=true,log_dir_size_threshold=10G,proxy_mem_limited=2G,enable_proxy_scramble false,skip_proxy_sys_private_check=true,log_dir_size_threshold=10G,proxy_mem_limited=2G,enable_proxy_scramble

    74420编辑于 2023-02-02
  • 来自专栏JVMGC

    开源国产优美而强大,支持公式播放,场景布置,动画制作的网页魔方

    M' /Dw' ↑ R ← U ↓ R' → U' 虚拟魔方 触控操作 touch 撤销操作 undo 操作历史 history 自定义打乱 scramble

    68420编辑于 2023-03-10
  • 来自专栏VRPinea

    东京电玩展2022:被《太空狼人杀》包圆的Meta展位

    ●有7款VR游戏可以试玩 参观者在Meta的展位可以玩的游戏有《Beat Saber》《Sports Scramble》等经典游戏,以及刚刚发售或即将发售的新作《ALTAIR BREAKER》《RUINSMAGUS 《Beat Saber》:VR节奏音游 《Sports Scramble》:VR运动类游戏 《ALTAIR BREAKER》:VR多人剑术动作游戏 《RUINSMAGUS》:VR魔法动作RPG游戏

    48830编辑于 2022-11-17
领券