给定一个单词和一个文本,我们需要返回字谜的出现

Ahm*_*leh 8 c++ algorithm

给定单词和文本,返回文本中单词字符的出现次数.例如.单词是"for",文本是"forxxorfxdofr","for"的字谜将是"ofr","orf","fro"等.所以这个特定例子的答案是3.

我得到了蛮力方法,它获得了单词的所有排列,然后比较文本是否包含它,并增加出现次数,但这是O(N ^ 2)方法.我正在寻找更好的复杂性.

Kar*_*ath 13

您只需查找字符数即可.

比方说,你正在寻找anagramms look.所以,你正在寻找:

  • 一个4字符长度的单词,
  • 1 l,2 o和1 k.

只需处理前4个字母,存储计数.检查您是否匹配.添加下一个字符(增量),删除旧字符(减量).再检查一遍.等等...