求一个字符串差异比较算法

mademelaugh 2006-03-18 11:30:04
给出源字符串和目标字符串,要比较出相对于源字符串,目标字符串在哪里插入了字符,在哪里删除了字符。
如str1="abcde";str2="acd2ef";
要知道曾经删除b并插入了2和f。
...全文
199 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mademelaugh 2006-03-20
  • 打赏
  • 举报
回复
已解决,lcs问题
independently 2006-03-18
  • 打赏
  • 举报
回复
楼上的,不能那样啊,可能有很多重复的字符,不能那么草率判断的!
serversql 2006-03-18
  • 打赏
  • 举报
回复
循环str1,在str2查找,如果没有 就是删除掉了
循环str2,在str1查找,如果没有 就是添家了
还可以知道是哪个位置
不过,字符串不要太长!
independently 2006-03-18
  • 打赏
  • 举报
回复
首先你提的需求是不够明确,我举个例子,例如源字符串是"abcdefg",目标字符串是"abcdmdeefg",这当中可能经过了几个转换:1直接在源字符串中d字符后插入mde;2、在源字符串中d字符后插入md后,再在源字符串中e字符后插入字符e。这样的话就没法实现你的要求。在检测过程中,如果遇到类似的问题,得有个优先级问题。看你怎么取舍了
lxjlz 2006-03-18
  • 打赏
  • 举报
回复
up
independently 2006-03-18
  • 打赏
  • 举报
回复
恩。本来想写一个呢,可惜电脑坏啦,要到周一才能修。在用别人的电脑,没有编程工具
兔子-顾问 2006-03-18
  • 打赏
  • 举报
回复
尝试改良kmp。每次判断主串当前剩下的字串的最大重复位置,再这之前的认为是插入或修改的部分。回头有兴趣的可以写一下。应该蛮有趣。
mademelaugh 2006-03-18
  • 打赏
  • 举报
回复
To:independently(我是风筝高高飞)
我不需要比较过程以及细节,只需要比较最终的差异。如果要排优先级,肯定是从前往后去尽量大的相同部分了。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧