首页 > 代码库 > 一个有趣的回答(摘自http://www.51testing.com/html/03/n-860703.html)

一个有趣的回答(摘自http://www.51testing.com/html/03/n-860703.html)

假设这有一个各种字母组成的字符串,假设这还有另外一个字符串,而且这个字符串里的字母数相对少一些。从算法上讲,什么方法能最快的查出所有小字符串里的字母在大字符串里都有?
  比如,如果是下面两个字符串:
  String 1: ABCDEFGHLMNOPQRS
  String 2: DCGSRQPOM
 
如果这样呢——假设我们有一个一定个数的字母组成字串——我给每个字母分配一个素数,从2开始,往后类推。这样A将会是2,B将会是3,C将会是5,等等。现在我遍历第一个字串,把每个字母代表的素数相乘。你最终会得到一个很大的整数,对吧?然后——轮询第二个字符串,用每个字母除它。如果除的结果有余数,这说明有不匹配的字母。如果整个过程中没有余数,你应该知道它是第一个字串恰好的子集了。