当前位置: 首页 > news >正文

动画演示编辑距离

const char* s = "ecllipse"; int m = strlen(s);
const char *t = "ellipsis"; int n = strlen(t);
int d[64][64];
int pt = 50;void my_pause(int n = pt) {int paused = 0;for (int i = 0; (i < n) || paused; i++) {usleep(10000);int ch = getch();if (ch == ERR) continue;else if (ch == 'q' || ch == 'Q') exit(0);else if (ch == ' ') paused = !paused;else break;}
}void display(int ii, int jj, int flag) {for (int i = 0; i <= m; i++) {if (i == ii) attron(COLOR_PAIR(flag));mvaddch(3, 16+i*2, s[i] ? : ' '); // gcc featureif (i == ii) attroff(COLOR_PAIR(flag));}for (int j = 0; j <= n; j++) {if (j == jj) attron(COLOR_PAIR(flag));mvaddch(5, 16+j*2, t[j] ? : ' ');if (j == jj) attroff(COLOR_PAIR(flag));}for (int i = 0; i <= m; i++)for (int j = 0; j <= n; j++) {int  v = d[i][j];char s[16] = "?";if (v >= 0) sprintf(s, "%d", v, d[i][j]);if (i == ii && j == jj) attron(COLOR_PAIR(flag));mvprintw(7+i*2, 10+j*6, "%s", s);if (i == ii && j == jj) attroff(COLOR_PAIR(flag));}refresh(); my_pause();
}inline int min3 (int a, int b, int c) {int min = a;if (b < min) min = b;if (c < min) min = c;return min + 1;
}int edit_distance() {// 把s的前i个字符转换为""需要i次删除for (int i = 0; i <= m; i++) d[i][0] = i;// 把""转换为t的前j个字符需要j次插入for (int j = 0; j <= n; j++) d[0][j] = j;for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (s[i - 1] == '-' || s[i - 1] == t[j - 1]) {d[i][j] = d[i - 1][j - 1]; // 相同字符无需操作display(i-1, j-1, 1);}else {int a = d[i - 1][j]; // 删除display(i-1, j, 2);int b = d[i][j - 1]; // 插入display(i, j-1, 3);int c = d[i - 1][j - 1]; // 替换display(i-1, j-1, 4);d[i][j] = min3(a, b, c);}display(i, j, 5);}}return d[m][n];
}int main (int argc, char* argv[]) {if (argc == 2) pt = atoi(argv[1]);memset(d, -1, sizeof(d));initscr(); start_color();init_pair(1, COLOR_RED, COLOR_BLACK);init_pair(2, COLOR_GREEN, COLOR_BLACK);init_pair(3, COLOR_CYAN, COLOR_BLACK);init_pair(4, COLOR_MAGENTA, COLOR_BLACK);init_pair(5, COLOR_WHITE, COLOR_GREEN);cbreak(); noecho(); timeout(0); curs_set(0);atexit((void (*)())endwin);int n = edit_distance();display(m, n, 0);my_pause(1000);return n;
}#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <ncurses.h>

 

http://www.jsqmd.com/news/27547/

相关文章:

  • launch函数的参数
  • 2025年华美月饼厂家权威推荐榜单:榴莲冰皮月饼/水果月饼/五仁月饼源头厂商精选
  • 这是一篇随笔
  • 《AI工程》书介绍
  • 2025年市场上春饼机工厂推荐排行:安徽惠众食品机械领跑行业优质榜单
  • 2025 年汽车升降机,移动式升降机,提升机,登车桥厂最新推荐排行榜:技术实力与市场口碑深度解析
  • 2025 年液压升降机,导轨式升降机,自行升降机厂家最新推荐排行榜:技术实力与市场口碑深度解析
  • java 八股个人总结
  • 2025年优质小型脱硫剂厂家推荐榜单:聚焦技术适配与服务实力,钙基干法脱硫剂,高效脱硫增效剂厂家推荐
  • 2025佛山及周边断桥铝门窗优质小厂推荐榜:专注品质与适配性的本土之选,铝合金门窗,别墅门窗厂家推荐
  • 【隐语SecretFlow】由蚂蚁集团牵头制定的“隐私保护计算安全分级”IEEE国际标准已正式发布!
  • 2025年优质小型显微镜厂家推荐,专注光学领域的实力之选,高清视频显微镜,测量型显微镜,智能识别显微镜厂家推荐
  • 202小型冷却塔厂家精选榜单:实力企业值得关注,河南冷却塔厂家推荐
  • 解析视频汇聚平台EasyCVR强大的设备统一管理能力,助力构筑安防融合感知的基石
  • 2025年聚焦小型优质单招机构!高口碑集训营推荐,适配不同备考需求,九江单招培训,江西单招机构推荐
  • 2025聚焦球形环氢硼聚变厂家领域:创新机构引领清洁能源探索,玄龙-50U氢硼聚变厂家推荐
  • 为什么别人用 DevPod 秒启 DeepSeek-OCR,你还在装环境?
  • 读书笔记:分区索引详解:本地索引与全局索引
  • 2025年济南小型画室培训机构推荐精选榜单,美术生择校参考,济南画室培训机构,画室机构厂家推荐
  • 2025小型电缆桥架厂家精选推荐榜,实用选型参考,大跨距桥架,热镀锌桥架,不锈钢桥架厂家推荐
  • 性能优化:两条SQL索引优化,CPU占用率从40%降至25%
  • 2025 科技馆运维厂家企业推荐榜:专业力量守护科普阵地,博物馆运营,民防馆运营,展馆维保厂家推荐
  • MyBatis中注册mapper的三种方式
  • 2025铜/铝/通信/光伏/风电/废旧/工地/橡套/电缆回收推荐榜:定兴广瑞五星领跑!京津冀绿色回收 + 高效拆解,3 企业凭工业 / 通讯 / 性价比显优势
  • 2025实用主板板卡厂家推荐榜:聚焦中小规模优质供应商,工控主板板卡,核心板主板板卡厂家推荐
  • 2025年武汉小型车出租厂家服务商推荐榜单,实用出行参考,防撞车出租,高空车出租,登高车出租厂家推荐
  • 目前靠谱的除甲醛公司哪家好:2025年权威除甲醛服务对比分析
  • 2025值得关注的小型面粉机厂家榜单,适配多场景加工需求,大型面粉机,石磨面粉机,杂粮面粉机厂家推荐
  • 2025年BAB筑垒建设公司权威深度解析:北京写字楼装修行业测评和未来趋势揭秘
  • 哪款项目管理工具最能支撑IPD流程?深度解析飞书项目、Jira Align 与 Planview