每日一题(83) - 计算字符串的相似度

来源:互联网 发布:战舰世界基林数据 编辑:程序博客网 时间:2024/05/22 06:28

题目来自编程之美

题目


思路:其实就是求两个字符串的编辑距离,直接给出DP的思路

代码

#include <iostream>#include <assert.h>#include <string>using namespace std;/*f[i][j]:表示字符串A[1~i]转换成B[1~j]的最小编辑距离f[i][j] = min{f[i - 1][j - 1] + value,f[i][j - 1] + 1,f[i - 1][j] + 1};其中A[i] = B[j],则value = 0,否则value = 1初始化:f[0][j] = j;f[i][0] = i结果:f[nLenA - 1][nLenB - 1]*/int f[50][50];int Min(int x,int y,int z){if (x < y){if (x < z){return x;}else{return z;}}else{if (y < z){return y;}else{return z;}}}int EditDistance(char* pStrA,char* pStrB){assert(pStrA && pStrB);int nLenA = strlen(pStrA);int nLenB = strlen(pStrB);int nValue = 0;//初始化for (int i = 0;i < nLenA;i++){f[i][0] = i;}for (int j = 0;j < nLenB;j++){f[0][j] = j;}for (int i = 1;i < nLenA;i++){for (int j = 1;j < nLenB;j++){nValue = 1;if (pStrA[i] == pStrB[j]){nValue = 0;}f[i][j] = Min(f[i - 1][j - 1] + nValue,f[i][j - 1] + 1,f[i - 1][j] + 1);}}return f[nLenA - 1][nLenB - 1];}int main(){char strA[50];char strB[50];string str;//输入字符串Acin>>str;strA[0] = ' ';for (int i = 0;i < str.size();i++){strA[i + 1] = str[i];}strA[str.size() + 1] = 0;//输入字符串Acin>>str;strB[0] = ' ';for (int i = 0;i < str.size();i++){strB[i + 1] = str[i];}strB[str.size() + 1] = 0;int nSimNum = EditDistance(strA,strB);cout<< 1.0 / (nSimNum + 1)<<endl;system("pause");return 1;}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一岁宝宝只吃水果不吃饭怎么办 孩子发烧咳嗽怎么办最有效的方法 打了百白破孩子一直发烧咳嗽怎么办 顺产侧切肛门坠胀解大便难受怎么办 2岁拉肚子拉水怎么办吃什么药 三岁宝宝三天没拉大便怎么办 3个月宝宝3天没大便怎么办 3个月宝宝4天不拉大便怎么办 17个月宝宝看见生人害怕怎么办 大人给四个月婴儿喂糖水怎么办 宝宝12个月了还一直坐着玩怎么办 七个月宝宝发烧不到38℃怎么办 一个月大的婴儿头立不起来怎么办 18个月的宝宝晚上总找妈妈怎么办 婴儿吃了妈妈生气的奶上火怎么办 3个月的宝宝认人怎么办 十天大的婴儿大便是泡沫该怎么办 婴儿3天没有拉大便了怎么办 儿童两三天拉一次大便是稀便怎么办 五个月的婴儿一星期没大便怎么办 宝宝53天几天没大便了怎么办 42天宝宝4天没有大便怎么办 42天的宝宝3天没大便怎么办 6个月宝宝前额头碰青了怎么办 三个月的婴儿喝牛奶拉绿大便怎么办 已经喂了猫一个多月的高钙奶怎么办 几个月宝宝胳膊起来红豆豆怎么办 一岁半宝宝只喝牛奶不吃饭怎么办 儿子一生下来脖子上有淋巴结怎么办 满月宝宝睡觉不踏实易惊醒怎么办 两个月宝宝从婴儿车上掉下来怎么办 兔子不吃兔粮不喝水不拉粑粑怎么办 兔子吃了带水的菜叶怎么办 七个月的宝宝晚上睡觉总醒怎么办 紫薯和番茄一起吃了怎么办 1当半宝宝喝温开水后打隔怎么办 婴儿屁股拉便便肛门有点烂了怎么办 婴儿便便之后肛门就红怎么办 50天的宝宝三天不拉大便怎么办 两个月宝宝不拉屎只放屁怎么办 两个月大宝宝两天没拉屎怎么办