字符串匹配问题
字符串匹配问题编程实现在单词表中查找与已知单词最接近的单词1 如果单词表中有要查找的单词输出该单词的位置2 如果单词表中没有要查找的单词输出与要查找的单词最接近的单词(可能不止一个)。最接近的单词是指以下三种情况a) 两个单词仅仅相差一个字母包括多一个或者少一个字母。如question 和 queston;time 和 timee;b) 两个单词中仅有两个字母位置是相反的。如:teacherhe和taecherc) 两个单词仅有一个字母不同如hello和hallo。这题其实分两部分1️⃣如果单词表里有该单词 → 输出位置2️⃣如果没有 → 找最接近的单词“最接近”有3种情况① 相差一个字母增/删例如question queston或time timee判断方法长度差 1② 两个字母位置互换例如teacher taecher判断恰好两个位置不同 且交换后相同③ 只有一个字母不同例如hello hallo判断长度相同 只有1个字符不同一、解题思路步骤输入单词表 输入待查单词① 先查是否完全相同如果找到输出位置② 如果没有找到遍历单词表判断三种接近情况二、C实现#includeiostream#includevector#includestringusingnamespacestd;booloneReplace(string a,string b){if(a.size()!b.size())returnfalse;intcnt0;for(inti0;ia.size();i)if(a[i]!b[i])cnt;returncnt1;}booloneInsert(string a,string b){if(abs((int)a.size()-(int)b.size())!1)returnfalse;string sa.size()b.size()?a:b;string ta.size()b.size()?b:a;inti0,j0,cnt0;while(is.size()jt.size()){if(s[i]t[j]){i;j;}else{cnt;i;}}returncnt1;}boolswapTwo(string a,string b){if(a.size()!b.size())returnfalse;vectorintpos;for(inti0;ia.size();i)if(a[i]!b[i])pos.push_back(i);if(pos.size()!2)returnfalse;returna[pos[0]]b[pos[1]]a[pos[1]]b[pos[0]];}intmain(){vectorstringword{teacher,hello,time,question,apple};string target;cintarget;for(inti0;iword.size();i){if(word[i]target){cout位置:iendl;return0;}}cout最接近的单词:endl;for(string w:word){if(oneReplace(w,target)||oneInsert(w,target)||swapTwo(w,target)){coutwendl;}}return0;}三、运行示例单词表teacher hello time question apple输入taecher输出最接近的单词: teacher输入hallo输出最接近的单词: hello输入time输出位置:2

相关新闻

码垛机SolidWorks三维

码垛机SolidWorks三维

码垛机作为现代物流与自动化仓储领域的核心设备,其三维设计是机械结构优化与功能实现的基础。通过SolidWorks软件构建的三维模型,能够直观呈现设备的整体架构,涵盖机械臂、传动系统、末端执行器及支撑框架等关键部件。这种可视化设计方式不仅…

2026/7/3 20:53:53 阅读更多 →
前端构建产物里的 __esModule 是什么?一次讲清楚它的原理和作用

前端构建产物里的 __esModule 是什么?一次讲清楚它的原理和作用

如果你经常翻构建后的代码,基本都会看到这样一行:Object.defineProperty(exports, "__esModule", { value: true });很多人第一次看到都会疑惑:这是干嘛的?能删吗?不加会怎么样?和 default 导出有…

2026/5/17 9:18:21 阅读更多 →
RexUniNLU零样本文本分类实战:电商评论三分类(正/负/中)教程

RexUniNLU零样本文本分类实战:电商评论三分类(正/负/中)教程

RexUniNLU零样本文本分类实战:电商评论三分类(正/负/中)教程 你是不是也遇到过这样的烦恼?每天面对海量的电商评论,想快速知道用户是夸还是骂,却苦于没有标注好的数据去训练模型。手动一条条看&#xff1f…

2026/5/17 8:21:04 阅读更多 →

最新新闻

电力负荷预测:SVM与PSO优化算法实战解析

电力负荷预测:SVM与PSO优化算法实战解析

1. 电力短期负荷预测的技术挑战与算法选型 电力系统调度面临的核心难题之一是如何准确预测未来24小时至一周内的负荷变化。传统的时间序列分析方法(如ARIMA)和回归模型在处理非线性、非平稳的负荷数据时表现乏力,特别是在面对极端天气事件、节…

2026/7/4 11:44:41 阅读更多 →
基于YOLOv8的混凝土缺陷智能检测系统开发

基于YOLOv8的混凝土缺陷智能检测系统开发

1. 项目概述:混凝土缺陷智能检测系统 在土木工程领域,混凝土结构的安全评估一直是个耗时费力的工作。传统的人工检测方法不仅效率低下,而且受限于检测人员的专业水平和工作状态。我们开发的这套基于YOLOv8的混凝土缺陷检测系统,能…

2026/7/4 11:44:41 阅读更多 →
研究生科研效率提升:AI工具筛选与实战指南

研究生科研效率提升:AI工具筛选与实战指南

1. 研究生科研效率提升的关键痛点读研期间最宝贵的资源就是时间。我见过太多同学把大量精力耗费在低效的文献阅读、数据整理和论文写作上,最终导致研究进度滞后。根据Nature最新调查,全球62%的研究生存在"时间贫困"现象,其中AI工具…

2026/7/4 11:44:41 阅读更多 →
Web界面配置NAT:从原理到实战的完整指南

Web界面配置NAT:从原理到实战的完整指南

1. 项目概述:为什么我们需要Web界面来配置NAT? 如果你管理过网络,无论是家庭的小型路由器,还是企业级的防火墙,大概率都接触过NAT(网络地址转换)。这个技术可以说是现代互联网的“隐形守护者”&…

2026/7/4 11:42:41 阅读更多 →
PIC18F85J50与UG95 LTE模块的嵌入式通信方案解析

PIC18F85J50与UG95 LTE模块的嵌入式通信方案解析

1. 项目背景与核心价值在嵌入式系统开发领域,地理位置的限制常常成为项目实施的瓶颈。传统方案要么依赖昂贵的卫星通信模块,要么受制于特定运营商的网络覆盖。而UG95(Quectel UG95) LTE Cat 1模块与PIC18F85J50微控制器的组合&…

2026/7/4 11:40:40 阅读更多 →
2026年渗透测试工程师面试指南:15道核心题目深度解析与实战技巧

2026年渗透测试工程师面试指南:15道核心题目深度解析与实战技巧

1. 项目概述:一份来自实战的面试通关指南 又到了招聘季,看着身边不少朋友和团队里的新人开始为面试奔波,我总想起自己当年在会议室里被连环追问的场景。对于“渗透测试工程师”这个岗位来说,面试从来不只是考察你会不会用几个工具…

2026/7/4 11:38:40 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻