请教数的排列组合比较我有一组数,如123三个数,要求在另外一大组三位数数据中查找是否存在由这三个数组成的数(位置可以变化,如123/321/132等),请教算法,谢谢.我想在计算机上实现查找的程序.循环比较在数的位数比较少的时候是可以,但是,我如果有10多位的数,要排列组合查找就太多了.

问题描述:

请教数的排列组合比较
我有一组数,如123三个数,要求在另外一大组三位数数据中查找是否存在由这三个数组成的数(位置可以变化,如123/321/132等),请教算法,谢谢.我想在计算机上实现查找的程序.
循环比较在数的位数比较少的时候是可以,但是,我如果有10多位的数,要排列组合查找就太多了.

算法是这样的:
逐个检查大的字符串中的每个字符
如:787309321890980
看是不是包含这三个数str="123"(当然位置可变)中的某一个字符
直到检查到数1或2或3,这时,(如检查到3)将str变为"12"
检查下一个数是不是1或者2,如果不是,继续向下查找,直到将str变为""为止