上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

把str2整体插入到str1中的某个位置,形成最大的字典序前置推断

[复制链接]
  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5960

    回帖

    6759

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6759

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-4-19 09:32:53 | 显示全部楼层 | 阅读模式

    给定两个字符串str1和str2,想把str2整体插入到str1中的某个位置,形成最大的字典序,返回字典序最大的结果

    大部分的都是直接推最优解法了
    首先是把str插入str1,长度为N+M的字符串,将所有可能进行比较,得出一个字典序最大的字符串

    但是为什么假设str1>=str2就可以直接跳过了?
    我尝试查阅了很多资料,这部分都较为模糊
    所以决定自己举例证明一下,不保证正确性

    我们可以把字典序视为数字的比较,从而根据数字的连续性画出图,这样比较较为方便

    首先假设str1>str2,为什么不需要在i位设置str2了?
    可以得出图标
    图片.png
    假设str2在k位不等了,则拼接出来的M+N字典序一定不如k+1位开始拼接的字符串大

    则当大于时可以证明该字符串无效

    当str1的部分=str2时
    我们可以确定字典序相等,此时可以分为四种情况
    图片.png
    当第一种单调上时
    如果加在任意位置,则一定会破坏上升的趋势,无法跟先全部上升最后拼接到最后的相比
    图片.png
    当第二种单调下时,放在i位没有任何帮助,一定会被单调下的过程中低于当前位的的前部分插入str2的M+N字符串替换掉,所以该情况无效
    图片.png
    当第三种曲折时
    图片.png
    如果不在折点与前两种一样,如果在折点
    这部分有一点绕,假设str2相同的字符是X(文中用圆形表示)
    则错误情况直接在str1中X前插入str2
    而正确情况则是在str1中X后的最近低于X的字符相邻插入
    图片.png
    当第四种情况类似于第三种
    但该两种最终得出的结论基本一致,所以不必在等于时插入,在第一个小于的字符开始插入可以等于相同作用
    图片.png

    根据以上四种情况总结可得出>=插入的多种情况都有最大解覆盖掉或有其他相同解,可以得出>=的情况下可以忽略

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2024-4-19 09:41:20 | 显示全部楼层
    猫耳 🐱

    哥哥以后顺便贴下原题呗
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5960

    回帖

    6759

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6759

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-4-19 09:42:44 | 显示全部楼层
    王一之 发表于 2024-4-19 09:41
    猫耳 🐱

    哥哥以后顺便贴下原题呗

    第一行就是原题描述

    看着很短实际好几个坑
    我到现在还没写出来
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2024-4-19 09:43:19 | 显示全部楼层
    李恒道 发表于 2024-4-19 09:42
    第一行就是原题描述

    看着很短实际好几个坑

    链接捏?
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5960

    回帖

    6759

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6759

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-4-19 09:44:31 | 显示全部楼层

    没leetcode
    口口相传的题
    我是在https://www.zhihu.com/question/452650138刷到的
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表