博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(算法)两个单词的最短距离
阅读量:6079 次
发布时间:2019-06-20

本文共 807 字,大约阅读时间需要 2 分钟。

题目:

有个内含单词的超大文本,给定任意两个单词,找出这个文件中两个单词的最短距离。

思路:

通过两个两个变量来记录两个单词最后出现的位置,然后每次计算两者的距离,并更新最小距离。

假设需要重复查找任意两个单词的最短距离,则需要构造一个散列表,记录每个单词及其出现的位置。当查找某两个单词的最短距离时,只需找出该两单词所在列表差值最小的位置。

查找方法:可以将两个有序列表合并(列表元素包含位置及其所属单词,可以构造结构体)。

代码:

#include
#include
#include
using namespace std;int shortest_1(const vector
&words,string word1,string word2){ int min=INT_MIN; int len=words.size(); int lastWord1=-1; int lastWord2=-1; int distance; for(int i=0;i
=0 && min>distance) min=distance; } else if(curWord==word2){ lastWord2=i; distance=lastWord2-lastWord1; if(lastWord1>=0 && min>distance) min=distance; } } return min;}int main(){ return 0;}

 

转载地址:http://exhgx.baihongyu.com/

你可能感兴趣的文章
Hive Export和Import介绍及操作示例
查看>>
需跟进的
查看>>
Zend Opcache与XCache之间共存与效率问题
查看>>
代码生成利器:IDEA 强大的 Live Templates
查看>>
关于Java字符编码几个容易弄错的问题
查看>>
http://mongoexplorer.com/ 一个不错的 mongodb 客户端工具。。。
查看>>
coreseek使用
查看>>
Deployment Groups Object Number
查看>>
消息队列学习
查看>>
CSS3 文本换行
查看>>
友元函数和友元类
查看>>
面试题
查看>>
java调用带有返回值的oracle存储过程
查看>>
CFixedAlloc 分析
查看>>
ldconfig详解
查看>>
linux centos 两张网卡,一个上内网,一个上外网,同时
查看>>
Xcode 4.3 使用xcodebuild命令编译项目环境设置
查看>>
完成端口(Completion Port)详解
查看>>
Android Studio使用教程
查看>>
MongoDB学习笔记
查看>>