作者:尼莫它只是只喵 | 来源:互联网 | 2023-07-12 06:09
我遇到一个比较棘手的问题,如何判断两个相似字符串中有多少个相同的对应字符?例如:字符串1:ababababab;字符串2:abab#aba#bab。串1和串2基本是按顺序对应的,共有10个相同的顺序
我遇到一个比较棘手的问题,如何判断两个相似字符串中有多少个相同的对应字符?例如:字符串1:ababababab;字符串2:abab#aba#bab 。串1和串2基本是按顺序对应的,共有10个相同的顺序对应字符,串2多出2个#,它们的匹配率为10/12。
现在如何求两个任意串的匹配率?或者说有多少相同的顺序对应字符?望多多指教,兄弟感激不尽!
12 个解决方案
我的邮箱791389262@qq.com 多多交流,谢谢!
网上搜索“最长公共子序列”,这是个动态规划的经典例子。
不是最长公共子序列,是串2如何以串1为框架判断出在整体上有多少和串1顺序对应的字符。
例如:str1:党的先进性教育活动。str2:党的#先进性¥教育#活动
串2以串1为框架在整体上有9个和串1顺序对应的字符,3个多余字符‘#’‘¥’‘#’。
你举的这个例子还是LCS啊
如果都象你举的例子这么简单(str1完全含在str2中),O(n)就可以解决
多出的字符串是确知的嘛?
如果是就把它们先删除,然后再比利用滑窗进行相关求和比。
如果不是,那么你提供的规则信息是不完备的。
不好意思,一直没说的很清楚
str1不一定完全在str2中,str1:党的先进性教育活动中。str2:党得#先进性¥教育#活动,就是在str2中找出有多少和str1对应的字符,例子中以str1为模板,str2对应相同的是“党先进性教育活动"这8个字符。模板str1中有10个字符,所以匹配率8/10
多谢
你的例子还是没有说清楚。借用你的例子,
str1 党的先进性教育活动中
str2 党的先进性
党的教育活动中
那么对于str1和str2,此时你认为它们的匹配率是多少?10/12?还是5/12?
做个循环就可以计算了,字符串1位数为循环数对比字符串2?