小编Dog*_*ert的帖子

子串搜索算法(非常大的干草堆,小针)

我知道这里已经有几个类似的问题,但我需要一些针对我的案例的建议(找不到类似的东西).

我必须搜索非常大量的数据,以获得大约十亿倍的子字符串(10亿字节中的10个字节).干草堆没有变化,所以如果需要我可以承受大量的预计算.我只需要搜索部分尽可能快.

我发现算法需要O(n)时间(n =干草堆大小,m =针大小),而幼稚搜索需要O(n + m).由于这个特殊情况下的m非常小,我还能研究其他算法吗?

编辑:谢谢大家的建议!更多信息 - 数据可以被认为是随机位,所以我认为任何类型的索引/排序都不可能.要搜索的数据可以是任何内容,而不是英语单词或任何可预测的内容.

language-agnostic algorithm substring

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

使用DOMDocument用div包装所有图像

我有一个大的html文档,有几个图像.我想将所有图像包裹在里面div.wrapped.我该怎么做DOMDocument

我见过这个appendChild方法,但最后只附加了元素.如何在中间插入一个,然后将图像移入其中?

php domdocument

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

在Ruby中使用Google Search REST API

我正在尝试使用Ruby进行谷歌搜索,并打印前3个结果.

谁能指点我一个示例代码?我找不到了.

ruby

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

将以下匹配的行移动到文件的顶部

我有一个大文本文件,其中有几个调用特定函数method_name.

我用它们匹配它们:g/method_name.

如何将它们移动到文件的顶部(第一个匹配位于顶部)?

我试过了,:g/method_name/normal ddggP但这颠倒了顺序.是否有更好的方法直接剪切和粘贴所有匹配的行?

示例输入文件:

method_name 1
foo
method_name 2
bar
method_name 3
baz
Run Code Online (Sandbox Code Playgroud)

示例输出文件:

method_name 1
method_name 2
method_name 3
foo
bar
baz
Run Code Online (Sandbox Code Playgroud)

vim

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

未定义的方法password_changed?错误

我正在尝试设置我的程序,以便仅在密码更改时验证密码(这样用户可以编辑其他信息而无需输入密码).

我目前收到错误消息

NoMethodError in UsersController#create, undefined method `password_changed?' for #<User:0x00000100d1d7a0>
Run Code Online (Sandbox Code Playgroud)

当我尝试登录时

这是我的验证码user.rb:

    validates :name,  :presence => true,
 :length   => { :maximum => 50 }
validates :email, :presence   => true,
:format     => { :with => email_regex },
:uniqueness => { :case_sensitive => false }
validates :password, :presence =>true, :confirmation => true, :length => { :within => 6..40 }, :if=>:password_changed?  
Run Code Online (Sandbox Code Playgroud)

这是我的创建方法users_controller.rb:

def create
    @user = User.new(params[:user])
    if @user.save
        sign_in @user
        flash[:success] = "Welcome to the Sample App!"
        redirect_to …
Run Code Online (Sandbox Code Playgroud)

validation ruby-on-rails password-confirmation nomethoderror

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

使用分隔符加入目录中的所有文件

我有一个包含数百个文件的目录(每个文件都有几个字符).我想将它们连接到一个带有分隔符"|"的文件中.

我试过了

find . -type f | (while read line; do; cat $line; echo "|"; done;) > output.txt 
Run Code Online (Sandbox Code Playgroud)

但这创造了一个无限循环.

unix bash

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

在Haskell的monad链(>>,>> =)中有条件地"return()"的更短的方法?

我有这个简单的代码,它读取一个字符串并无限期地打印出来.

main :: IO ()
main = getLine >>= putStrLn >> main
Run Code Online (Sandbox Code Playgroud)

现在我想在getLine通话后退出,如果该行是"退出"或"退出".

我的尝试:

main :: IO ()
main = do
  line <- getLine
  if line == "exit" || line == "quit"
  then return ()
  else putStrLn line >> main
Run Code Online (Sandbox Code Playgroud)

对我来说看起来不是惯用语.有没有更好的办法?

haskell

8
推荐指数
2
解决办法
1093
查看次数

Windows中的Antialias font-face嵌入式文本?

在使用font-face嵌入时,有没有办法让字体在Windows中呈现为反锯齿?

与Windows 7(试过chrome/firefox)相比,http://code.google.com/webfonts在Ubuntu/Mac上看起来要好得多

antialiasing font-face

7
推荐指数
2
解决办法
4122
查看次数

阻止创建一个类的多个对象

如何将任何类的对象限制为一个.我的班级看起来像:

class Speaker
  include Mongoid::Document
  field :name, :type => String
end
Run Code Online (Sandbox Code Playgroud)

我只是想让一个扬声器的实例.一种方法是添加验证,该验证将检查已经存在的Speaker类的对象的数量.有没有红宝石的做事方式?

ruby ruby-on-rails mongoid ruby-on-rails-3

7
推荐指数
2
解决办法
593
查看次数

调用本机浏览器功能,即使它已被覆盖

如果我有类似的东西

alert = 0;
Run Code Online (Sandbox Code Playgroud)

在另一个脚本中.

这是在另一个脚本中,我的代码无法在该脚本之前加载.

如何alert在脚本中调用原始方法?

javascript

7
推荐指数
2
解决办法
910
查看次数