码迷,mamicode.com
首页 > 其他好文 > 详细

Levenshtein Distance

时间:2020-01-30 12:41:32      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:com   ack   image   ras   自动   strong   std   typedef   ios   

Levenshtein Distance

技术图片

AC_Code

 

 1 #include <bits/stdc++.h>
 2 #include <iostream>
 3 #include <cstdio>
 4 #include <cstring>
 5 #include <string>
 6 #include <cmath>
 7 #include <queue>
 8 #include <stack>
 9 #include <map>
10 #include <set>
11 #include <vector>
12 using namespace std;
13 typedef long long ll;
14 string a,b;
15 set<string>S;///set自动排序去重
16 
17 void del(string s){
18     int n=s.length();
19     if( n==1 ) return ;
20     for(int i=0;i<n;i++){///delete第i位的字符
21         string ss;
22         ss.clear();
23         for(int j=0;j<n;j++){
24             if( j==i ) continue;
25             ss.push_back(s[j]);
26         }
27         S.insert(ss);
28     }
29 }
30 
31 void add(){
32     int m=a.length();
33     int n=b.length();
34     for(int i=0;i<=n;i++){///n个字符有(n+1)个空隙
35         for(int j=0;j<m;j++){///在第i个空隙分别加a[j]
36             string ss;
37             ss.clear();
38             for(int k=0;k<i;k++){
39                 ss.push_back(b[k]);
40             }
41             ss.push_back(a[j]);
42             for(int k=i;k<n;k++){
43                 ss.push_back(b[k]);
44             }
45             S.insert(ss);
46         }
47     }
48 }
49 
50 void change()
51 {
52     int m=a.length();
53     int n=b.length();
54     for(int i=0;i<n;i++){///把b中的第i个字符
55         for(int j=0;j<m;j++){///换成a中的第j个字符
56             string ss;
57             ss.clear();
58             for(int k=0;k<n;k++){
59                 if( k==i ) ss.push_back(a[j]);
60                 else ss.push_back(b[k]);
61             }
62             S.insert(ss);
63         }
64     }
65 }
66 
67 
68 int main()
69 {
70     getline(cin,a);
71     getline(cin,b);
72     del(b);
73     add();
74     change();
75     S.erase(b);
76     set<string>::iterator it;
77     for(it=S.begin(); it!=S.end(); it++){
78         cout<<(*it)<<endl;
79     }
80     return 0;
81 }

 

 

 

 

 

 

Levenshtein Distance

标签:com   ack   image   ras   自动   strong   std   typedef   ios   

原文地址:https://www.cnblogs.com/wsy107316/p/12242333.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!