|
发表于 2020-12-11 21:48:50
|
显示全部楼层
江西省南昌市
- .版本 2
- .子程序 最长公共子序列相似度2, 双精度小数型, , 稍微改进,可匹配中文但有BUG
- .参数 文本一, 文本型
- .参数 文本二, 文本型
- .局部变量 Char1, 文本型, , "0"
- .局部变量 Char2, 文本型, , "0"
- .局部变量 Long1, 整数型
- .局部变量 Long2, 整数型
- .局部变量 Matrix, 整数型, , "0"
- .局部变量 i, 整数型
- .局部变量 j, 整数型
- .局部变量 k, 整数型
- .局部变量 return, 文本型
- .局部变量 a, 正则表达式类
- .局部变量 aa, 正则表达式类
- a.创建 (“\S”, 文本一, , , , )
- aa.创建 (“\S”, 文本二, , , , )
- Long1 = a.取匹配数量 ()
- Long2 = aa.取匹配数量 ()
- 重定义数组 (Matrix, 假, Long1, Long2)
- Matrix [1] [1] = 1 ' matrix[0][0]=1
- .变量循环首 (2, Long1, 1, i) ' for(int i = 1;i<=long1,i++){
- Matrix [i] [1] = 1 ' matrix[i][0]=1
- .变量循环尾 () ' }
- .变量循环首 (2, Long2, 1, i) ' for(int i = 1;i<=long2,i++){
- Matrix [1] [i] = 1 ' matrix[0][i]=1
- .变量循环尾 () ' }
- .变量循环首 (2, Long1, 1, i) ' for(int i = 1;i<=long1,i++){
- .变量循环首 (2, Long2, 1, j) ' for(int j = 1;i<=long2,i++){
- .如果 (a.取匹配文本 (i - 1, ) = aa.取匹配文本 (j - 1, )) ' if (char1[i-1] == char2[j-1]) {
- Matrix [i] [j] = Matrix [i - 1] [j - 1] + 1 ' matrix[i][j] = matrix[i - 1][j - 1] + 1;
- .否则
- Matrix [i] [j] = 选择 (Matrix [i - 1] [j] > Matrix [i] [j - 1], Matrix [i - 1] [j], Matrix [i] [j - 1]) ' Math.max(matrix[i - 1][j], matrix[i][j - 1])
- .如果结束
- ' }
- .变量循环尾 () ' }
- .变量循环尾 () ' }
- i = Long1 ' int i = m, j = n;
- j = Long2
- k = 1 ' int k = 1;
- .判断循环首 (k ≠ Matrix [Long1] [Long2]) ' while (k != matrix[m][n]) {
- .如果真 (Matrix [i - 1] [j] = Matrix [i] [j]) ' if(matrix[i-1][j]==matrix[i][j]]){
- i = i - 1 ' i--;}
- 到循环尾 ()
- .如果真结束
- .如果真 (Matrix [i] [j - 1] = Matrix [i] [j]) ' if(matrix[i][j-1]==matrix[i][j]]){
- j = j - 1 ' j--;}
- 到循环尾 ()
- .如果真结束
- .如果真 (Matrix [i] [j] ≠ Matrix [i - 1] [j - 1])
- return = a.取匹配文本 (i - 1, ) + return ' StringBuilder.insert(0,char1[i-1]);
- ' 输出调试文本 (Char1 [i - 1])
- k = k + 1 ' k++;
- .如果真结束
- i = i - 1 ' i--;
- j = j - 1 ' j--;
- .判断循环尾 ()
- 返回 (选择 (Long1 > Long2, 求字数 (return) ÷ aa.取匹配数量 (), 求字数 (return) ÷ a.取匹配数量 ()))
- [code].版本 2
- .子程序 求字数, 整数型
- .参数 text, 文本型
- .局部变量 a, 正则表达式类
- a.创建 (“\S”, text, , , , )
- 返回 (a.取匹配数量 ())
复制代码 [/code] |
|