当前位置: 首页 > 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.gsyq.cn/news/35884.html

相关文章:

  • 这是一篇随笔
  • 2025 年汽车升降机,移动式升降机,提升机,登车桥厂最新推荐排行榜:技术实力与市场口碑深度解析
  • 为什么别人用 DevPod 秒启 DeepSeek-OCR,你还在装环境?
  • 2025年济南小型画室培训机构推荐精选榜单,美术生择校参考,济南画室培训机构,画室机构厂家推荐
  • 性能优化:两条SQL索引优化,CPU占用率从40%降至25%
  • 2025 科技馆运维厂家企业推荐榜:专业力量守护科普阵地,博物馆运营,民防馆运营,展馆维保厂家推荐
  • 2025实用主板板卡厂家推荐榜:聚焦中小规模优质供应商,工控主板板卡,核心板主板板卡厂家推荐
  • 2025年武汉小型车出租厂家服务商推荐榜单,实用出行参考,防撞车出租,高空车出租,登高车出租厂家推荐
  • leetcode274. H 指数
  • 2025年BAB筑垒建设公司权威深度解析:北京写字楼装修业测评与未来趋势揭秘
  • 2025 年最新推荐:货梯源头厂家排行榜 防爆 / 升降 / 仓库 / 载货电梯靠谱品牌精选
  • 边缘智能的创新:MLGO微算法科技推出基于QoS感知的边缘大模型自适应拆分推理编排技术
  • Pinely Round 5 (Div.1 + Div.2)
  • 【新特性】 版本速递 | 华为云Versatile智能体平台 新增特性介绍(2025年10月发布)
  • 2025年10月绩效管理咨询公司推荐:实力榜评价
  • 使用JMH对远程接口进行压测
  • Playwright与Selenium的对比
  • MLGO微算法科技发布多用户协同推理批处理优化系统,重构AI推理服务效率与能耗新标准
  • 2025 年 HDPE 土工膜,聚乙烯土工膜,糙面土工膜厂家最新推荐,产能、专利、环保三维数据透视!
  • 2025年乌鲁木齐黄金回收权威推荐榜单:黄金上门回收/黄金首饰回收/黄金首饰加工服务商精选
  • The lifelong path of human
  • 四大主流平台深度测评:2025 企业自动化运维平台选型指南,自动化巡检平台适配核心场景
  • 2025年10月印刷厂推荐:行业口碑榜与可验证解决方案
  • SQL - SELECT语句执行时是先做JOIN还是先执行WHERE条件进行过滤?
  • 2025年10月中国精益生产咨询公司十强榜:客观评测与选择指引
  • 陕西省基本农田调整技术服务品牌:2025年顶级服务商选择与行业洞察
  • 西南电线电缆供应厂家:卓越品质与创新技术的完美结合
  • 口碑好的照明路灯工厂:探索行业领先的照明解决方案
  • 口碑好的照明路灯工厂:2025年行业领导者与创新解决方案
  • 高压隔离探头在能源变换系统中的精确测量应用方案​