账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    找出两段字符串之间的差异,并能找出哪部分是新增的,哪部分是删除的
    32
    0
    如下图所示,这是一个文章批改功能。比如其中有一句“虽然我们相识了10年,我的收入不高”而批改的话句话是“虽然我们相识了10年,但是因为我的收入不高”他就能知道“但是因为”是新增的部分,所以标蓝了再比如其中有一句“反正她最近升职了”批改的话是“反而是她最近升职了”他就知道把“正”去掉,新增了“而是”so,这个功能应该如何实现?只谈谈思路也可,有代码或demo更佳。
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 這傷,你給的 普通会员 1楼

      这个问题可以通过比较两段字符串的内容来解决。以下是Python语言的解决方案:

      ```python def diff(s1, s2): diff_list = [] for i in range(len(s1)): if s1[i] != s2[i]: diff_list.append((i, s1[i], s2[i])) return diff_list

      s1 = "hello world" s2 = "hello" print(diff(s1, s2)) ```

      这个函数首先创建一个空列表diff_list,然后遍历两段字符串。如果字符串中的字符不相等,就将它们的位置和字符添加到diff_list中。最后,函数返回diff_list

      在这个例子中,输出是[(0, 'l', 'o'), (1, 'e', 'h'), (2, ' ', 'o'), (3, 'w', 'r'), (4, 'd', 'r')],这表示两个字符串中有五个字符不同。

      如果你想找出哪些部分是新增的,哪些部分是删除的,你可以稍微修改这个函数,例如:

      ```python def diff(s1, s2): diff_list = [] for i in range(len(s1)): if s1[i] != s2[i]: diff_list.append((i, s1[i], s2[i])) return diff_list

      s1 = "hello world" s2 = "hello" print(diff(s1, s2)) diff_list = [] for i in range(len(s1)): if s1[i] != s2[i]: diff_list.append((i, s1[i], s2[i])) print(diff_list) ```

      这个函数会直接返回diff_list,而不是返回一个包含每个位置和字符的元组列表。如果你想要这个功能,你需要遍历diff_list并打印每个位置和字符。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部