相关疑难解决方法(0)

在PHP中编译正则表达式

PHP中是否有一种编译正则表达式的方法,以便可以将其与多个字符串进行比较而无需重复编译过程?其他主要语言可以做到这一点 - Java,C#,Python,Javascript等.

php regex

60
推荐指数
5
解决办法
1万
查看次数

通过拖动选择表格上的单元格

我正在看这个问题,并看到了iPhone游戏的参考,你可以在屏幕上拖动选择字母.

我很想知道在Javascript中使用表格来实现这一点.因此,您将鼠标拖到每个单元格上,然后突出显示.

我不确定最好的方法是什么,但我希望有人有所作为.有人试图在这里,但它并没有真正起作用.

替代文字 替代文字

感谢Cacoo的性感图表.这就像一个在线visio,非常好.看看这个 ;)

javascript

40
推荐指数
3
解决办法
4万
查看次数

免费单词列表以编程方式使用?

我的一个朋友正在谈论她喜欢玩的文字游戏,你试图通过一次切换一个字母来将一个单词转换成另一个单词(它们具有相同数量的字母),其中每个迭代产生一个真正的单词.

例:

MOON - > WOLF
GOON
穿帮
GOLF
WOLF

我认为编写一个程序来生成解决方案是一个有趣的小项目,并且进一步考虑2个单词,确定解决方案是否存在以及最佳解决方案中的迭代次数.

问题是我无法找到可以通过编程方式轻松访问的免费单词列表.我也在考虑用这个作为学习Python的借口,所以如果有人知道免费的单词列表以及如何从Python解析和访问它的指针就会很棒.用于确定如何找到最佳路径的算法我将自己工作.

python dictionary

32
推荐指数
4
解决办法
5万
查看次数

解决非图表(Picross)

嘿,这是星期五下午,让我们有一个有趣的拼图/算法问题来解决.

我最喜欢的任天堂DS游戏之一是Picross DS.游戏很简单,它涉及解决称为Nonograms的谜题.您可以在这里尝试一个简单的在线Picross克隆:TylerK的Picross.

非图是网格,为网格的每一行和每列定义数字序列.这些数字定义了该行/列的"填充"方块的块,但未定义块两侧的未填充区域.例如,如果您有一行如下所示:

http://steam-punk.net/images/picross1.jpg

该行的可能解决方案包括:

http://steam-punk.net/images/picross2.jpg http://steam-punk.net/images/picross3.jpg

等等

"4 5"只是告诉你,在行的某个地方,填充了4个连续的块,然后填充了5个连续的块.这些块将是填充的唯一块,并且它们之前/之后的空间量是没有定义的.

当所有行和列符合其定义时,拼图就完成了,没有任何矛盾.

概念上非常简单的游戏,但手动解决其中一些可能需要一段时间.Picross DS的谜题逐渐增加到25x20网格,这通常需要我花半个小时来解决.

但是,我总是想到编写一个程序来解决它是一个非常简单的游戏.我从未接触过它,但也许这里的一些人会喜欢这个挑战.如果发布了相当数量的解决方案,我会将它们作为一个大型拼图相互比较,类似于Paolo Bergantino在这里用他的Boggle问题做的.如果你想参考,那么在Nonogram Wikipedia页面上有很多关于攻击谜题的方法的信息.

这是TylerK的Picross中拼图#1的一个易于解析的定义,所以你可以为程序提供一些东西.第1行是拼图维度(可能是不必要的),第2行是行定义,第3行是列定义.这只是我想到的第一件事,所以如果有人能想到更好的输入格式,请随意评论或编辑这篇文章以包含它.

15 15
15,4 5,2 4,1 3,2,2,2 4 3,2 6 2,2 1 6 2,2 1 1 4 2,1 1,1 3 2 1,2 2 1 2 1,3 3 2 1,9
4 4,3 1 2 3,2 1 2 2,2 1 1,1 4 2,1 3,1 8,1 3 1 1,1 4 2 1,1 4,2 4 …
Run Code Online (Sandbox Code Playgroud)

puzzle algorithm

25
推荐指数
3
解决办法
3万
查看次数

如何在字母矩阵中找到单词

这是我在电话采访中被问到的另一个问题:

给定字典和填字游戏(2d字符矩阵),找到可以在填字游戏中找到的所有字典单词.

我能想到的只是对字典进行哈希,找到填字游戏中的每个可能的单词并搜索哈希.我无法优化它.

必须承认微软的面试问题很难:(

请给我一些思考的方法.

language-agnostic algorithm

15
推荐指数
2
解决办法
1万
查看次数

java字符串排列和组合查找

我正在写一个Android word应用程序.我的代码包括将查找的字符串和一个7字母串的子串具有最小长度3的所有组合,然后所有可用的组合比较,每一个字在字典中找到的所有有效字的方法.我正在使用递归方法.这是代码.

// Gets all the permutations of a string.
void permuteString(String beginningString, String endingString) {
    if (endingString.length() <= 1){
        if((Arrays.binarySearch(mDictionary, beginningString.toLowerCase() +   endingString.toLowerCase())) >= 0){
            mWordSet.add(beginningString + endingString);
        }
    }
    else
        for (int i = 0; i < endingString.length(); i++) {
            String newString = endingString.substring(0, i) + endingString.substring(i + 1);
            permuteString(beginningString + endingString.charAt(i), newString);
      }
}
// Get the combinations of the sub-strings. Minimum 3 letter combinations
void subStrings(String s){
    String newString = "";
    if(s.length() > 3){
        for(int …
Run Code Online (Sandbox Code Playgroud)

java algorithm combinations permutation

9
推荐指数
1
解决办法
1万
查看次数

断开图中的所有顶点 - 算法

我正在寻找一种找到最小顶点子集的算法,这样通过从图中移除这个子集(和连接这些顶点的边),所有其他顶点都变得不连接(即图形将没有任何边).

  • 有这样的算法吗?
  • 如果不是:您能否推荐某种启发式来指定顶点.

我对图论有基本了解,所以请原谅任何不正确之处.

algorithm graph

9
推荐指数
1
解决办法
269
查看次数

如何为Puzzle Number 9制作一个有效的解算器

有这个游戏,iOSAndriod称为拼图9号(我与创作者没有任何联系).您从一个3x3网格开始,其中数字1到9随机放置在电路板上.然后组合相邻的数字(跟踪路径)以加起来9.路径中的最后一个节点变为9,所有其他数字增加1.您将相同的9的倍数组合在一起,其中结束节点变为数字的两倍并且起始节点返回到一个节点.例如,如果你开始

1 2 3
5 4 6
7 8 9 
Run Code Online (Sandbox Code Playgroud)

你可以从2-3-4开始,然后结束

1 3 4
5 9 6
7 8 9
Run Code Online (Sandbox Code Playgroud)

然后结合两个9

1 3 4
5 1 6
7 8 18
Run Code Online (Sandbox Code Playgroud)

游戏的目标是达到1152.基本上它就像2048但没有随机元素.例如,当你用完总数为9的数字时,游戏结束

8 7 6
5 5 5
9 1 72
Run Code Online (Sandbox Code Playgroud)

我写了一个简单的深度优先搜索python它适用于一些谜题,但我的内存耗尽其他谜题:

import sys
import Queue

conf = "213 547 689"
grid1 = []
for y in conf.split():
    for x in y:
        grid1.append(int(x))

a = []
explored = set()
sol = …
Run Code Online (Sandbox Code Playgroud)

python puzzle algorithm

8
推荐指数
1
解决办法
349
查看次数

如何使用动态编程在Boggle板上找到所有单词?

我参加了Coursera上的算法第二部分课程,其中一项作业是解决Boggle游戏的方法:http : //coursera.cs.princeton.edu/algs4/assignments/boggle.html

荣誉代码要求我不要公开发布解决方案,因此这里是基本算法的伪代码。

visit:
  word <- board[i][j]
  start <- dictionary.match(word, start)
  if start is not null
      visited[i][j] <- true
      word <- prefix + word
      if word is longer than min required length 
          words <- words + word

      for (x, y) ? adj(i, j)
          if not visited(x, y)
            visit (x, y)

  visited[i][j] <- false
Run Code Online (Sandbox Code Playgroud)

该字典是使用Trie实现的。

上面的代码有效,我通过了分配,但是随后我遇到了这篇博客文章,文章声称使用动态编程可以实现更快的解决方案:

事实证明,我们可以使用一种巧妙的动态编程技术来快速检查一个单词(在这种情况下是从词典中)是否可以从黑板上构造出来!

这是动态编程思想的核心:

要在板的第[i,j]个位置找到长度为k的单词(结束位置),该单词的第k-1个字母必须位于[i, j]。

基本情况是k = 1。

在板的第[i,j]个单元格的第[i,j]个单元格中会找到一个长度为1的字母(结束位置),该单词中唯一的字母与板的第[i,j]个位置的字母匹配。

一旦用基本情况填充了动态编程表,就可以在长度为k,k> 1的任何单词的基础上进行构建。

不幸的是,作者在解释方面做得很差,我无法遵循他的解决方案。我想不过,希望这里有人可以向我解释。

PS:

  1. 这个问题不是重复的,因为那个人不使用DP。请检查那些重复快乐的手指。

  2. 我已表现出足够的努力,没有要求任何人做我的作业。我已经有了自己的解决方案。我感兴趣的是学习一种更好的解决问题的方法(如果存在)。

谢谢!

java algorithm trie boggle

5
推荐指数
1
解决办法
945
查看次数

在Python中将一对数字作为参数

这条消息中,作者写了

def neighbors((x, y)):
Run Code Online (Sandbox Code Playgroud)

当我尝试使用Python 3.3运行它时,它告诉我它是无效的语法.我该如何解决这个问题?

python python-3.x

2
推荐指数
1
解决办法
841
查看次数

解释Python并转换为Java

Darius Bacon的代码中,在第11行和第12行,有以下代码:

prefixes = set(word[:i] for word in words for i in range(2, len(word)+1))
Run Code Online (Sandbox Code Playgroud)

我正在尝试将他的程序翻译成Java,我遇到了这个问题.

这是做什么的?

python java list

0
推荐指数
1
解决办法
68
查看次数