给定字符串的等级,找到给定字符串中具有给定等级

时间:2017-04-14 17:43:04

标签: string algorithm data-structures

假设字符串的排名模式基于对字符从1到k的编号,如果其中有k个不同的字符 (在所使用的字符上提供了一个命令,这里我们假设A< B< C ....等等,但通常它会是可以告诉我们char(X)< or =的东西或>在O | 1 |中的char(Y) 然后我们跟着将数字分配给出现字符的相应索引。

eg-

  

string - C D B C B,这里B - 1,C - 2,D - 3

     
    

rank - 2 3 1 2 1创建相应的排名数组

  

例如2 -

  

string - D E G B C D这里B - 1,C - 2,D - 3,E - 4,G - 5

     
    

排名 - 3 5 4 1 2 3

  

(简而言之,我们将最小的字符分配给值1,然后将下一个字符分配给2,依此类推)

现在,问题是:

给出大小为m的字符串S和大小为n的数组P形式的等级模式;找不到。它具有给定排名模式的子串? (m将大于n,以在字符串S中生成多个可能的解决方案)

eg.-

  

S是A C B A D C A E

     
    

P是1 3 2 1 4         S中有两个符合模式P

的子串   
     

这里,在子串[0,4]中,即A C B A D

     
    

排名1 3 2 1 4

  
     

再次在子串[3,7]中,即A D C A E

     
    

排名1 3 2 1 4

  

所以,这里答案是2 ..

我知道一个O | SR | SOLN。和O | S(logR + RlogR)| SOLN。 我们能做得更好吗?如果是这样,有人可以告诉我怎么做?

0 个答案:

没有答案