参考:http://tieba.baidu.com/p/2071585293

输入是由一些字母构成的一个二维数组以及一些单词组成。目标是要找出字谜中的单词,这些单词可能是水平、垂直或沿对角线上任何方向放置的。

作为例子,如下所示的字谜由单词 this 从第一行第一列的位置即(1,1)处开始并延伸至(1,4);单词 two 从(1,1)到(3,1);fat 从(4,1)到(2,3);而 that 则从(4,4) 到(1,1)。

现在至少有两种直观的算法来求解这个问题。对单词表中的每个单词,我们检查每一个有序三元组(行、列、方向)验证是否有单词存在。这需要大量嵌套的 for 循环,但他基本上是直观的算法。

也可以这样,对于每一个尚未月初谜板边缘的有序四元组(行、列、方向、字符数)我们可以测试是否所指的单词在单词表中。这也导致使用大量嵌套的 for 循环。如果在任意单词的最大字符数已知,那么该算法可能节省一些时间。

那么,如何判断一个字符串是否为一个单词。

第一个思路最简单,识别出个六级英语单词表,然后稍加整理做成数据库。
然后程序就通过查表来识别单词。

·第二个思路稍微复杂点,按照你的要求,识别率肯定超过100%,不过就是可能会出现一些不存在的词。
一般英文单词的构成都是前缀 + 本体 + 后缀。
而且排列都是辅音后加元音。
按照这种排列去识别英文单词。

·第三个思路是利用各大网站的查询系统,识别率可以达到99.99%,不过要求联网,会一些HTTP知识以及网络编程:
我举的例子用百度词典来做查询引擎(不过因为百度的识别率太高,会出现一些很奇特的问题,你可以试试用其他引擎,金山词霸,或者Google翻译。)。
具体步骤如下:
连接到http://dict.baidu.com/s?wd=%s&f=3&dt=explain
其中%s替换成我们的英文单词。
然后,检查返回的内容。
如果发现“词典中没有与您搜索的关键词匹配的内容”这个字符串,那么就说明这个单词不存在,否则就是存在的。

转载于:https://www.cnblogs.com/microcat/p/6664078.html

DataStructuresAndAlgorithm--字谜游戏相关推荐

  1. 选择问题 and 字谜游戏问题

    #include <stdio.h> #include <stdlib.h> // 第一题 // 找出N个数的第k个最大者 // 方法1:排序(冒泡),降序找出第k个值 // ...

  2. 为什么不可以使用哈曼顿距离_用Python计算8字谜游戏中的曼哈顿距离

    我试图用Python编写一个简单的a*解算器,用于一个简单的8字谜游戏. 我用这种方式代表了我比赛的目标:goal = [[1, 2, 3], [8, 0, 4], [7, 6, 5]] 我的问题是, ...

  3. 数据结构猜字谜游戏(Java语言编写)

    前几年买的一本数据结构与算法分析的书籍, 偶然看到以前有很多题目没有做, 现在抽空来看一下. 题目:输入是由一些字母构成的一个二维数组以及一组单词组成.目标是要找出字谜中的单词, 这些单词可能是水平. ...

  4. Java 猜字谜游戏

    package fundmental_excise6;import java.util.Arrays; import java.util.Scanner;/*** @author : jeasion* ...

  5. 简单的字谜游戏--可扩展--2015年7月25日14:58:00V1.1版

    1.string类find匹配法 #include <iostream> #include <string> #include <cstring> #include ...

  6. java获取一个目录下所有字谜_Java 猜字谜游戏 - osc_4jkldo6l的个人空间 - OSCHINA - 中文开源技术交流社区...

    package fundmental_excise6; import java.util.Arrays; import java.util.Scanner; /** * @author : jeasi ...

  7. [转载] python猜字谜游戏_Python Hangman猜字游戏

    参考链接: Python中的Hangman游戏 这是经典猜字游戏"Hangman"的Python脚本.要猜的词用一行破折号表示.如果玩家猜出单词中存在的字母,则脚本会将其写入所有正 ...

  8. 玩“字谜游戏” 能瞒过网友的火眼金睛?

    远离消费陷阱,提升消费体验,黑猫投诉平台全天候服务,您的每一条投诉,都在改变这个世界.[投诉,就上黑猫] 相关新闻:腾讯回函中消协:王者荣耀情人节皮肤未进行虚假宣传 新浪科技 肖云红 "天美 ...

  9. Problem Set 2 Hangman Game字谜游戏

    @author: LiuYulin """ Problem Set 2, hangman.py Name: Collaborators: Time spent: Hang ...

  10. c语言中的猜字谜游戏

    #include <stdio.h> #include <string.h> #include <windows.h>    //定义了Windows的所有资料型态 ...

最新文章

  1. 为什么一定要前后端分离?
  2. Python 之 Matplotlib (二)figure
  3. 以下linux进程内存空间中按低地址,Linux 内核开发 - 进程空间
  4. 【Linux 内核】调度器 ① ( 调度器概念 | 调度器目的 | 调度器主要工作 | 调度器位置 | 进程优先级 | 抢占式调度器 | Linux 进程状态 | Linux 内核进程状态 )
  5. 交换排序 java_java实现交换排序
  6. DataKeyNames
  7. 计算机科学与技术科研论文,计算机科学与技术学院2007年度科研论文一览表
  8. php mysql 框架 php5.2_简单快速安装Apache+PHP+MySql服务环境(四)—— 将php版本升级到7.2...
  9. 理解、创建、使用和测试HttpClient
  10. 做游戏,学编程(C语言) 13 消灭星星
  11. php date 加30分钟,PHP date函数常用时间处理方法
  12. 在Lotus Notes设置邮件转发
  13. 编译原理教程_8 静态语义分析和中间代码生成
  14. snmp服务配置及其oid、mib文件解析
  15. 程序员写博客如何赚钱「5大盈利方向」
  16. 计算机视觉术语,计算机视觉常用术语中英文对照
  17. g6的minimap中的配置_Minimap 缩略图
  18. ESP8266-Arduino编程实例-BH1750FVI环境光传感器驱动
  19. 修改C盘下的用户名(适合win10和win11)
  20. vue 跳转页面删除当前tab

热门文章

  1. 26 | Superscalar和VLIW:如何让CPU的吞吐率超过1
  2. word毕业论文页眉设置自动添加章节标题并左右对齐
  3. 短除法求最小公倍数c语言,短除法求最小公倍数
  4. 60分钟教你上手PyTorch + 迁移学习
  5. Adobe Illustrator CS6 已停止工作 的问题
  6. Sina weibo新浪微博 API返回信息详解
  7. 财报出炉,阿里大涨的背后 —— 凤凰终将涅槃?
  8. 已知两边求角度公式_有30度角的直角三角形,已知一直角边,求另两边的公式,快速求法...
  9. 你相信吗?这些照片其实并没有被PS_-Chaz-_新浪博客
  10. 软件渗透测试:定义、需求、过程