找到与15,000个12位数字的数字不同的数字

  • 本文关键字:数字 12位 000个 algorithm
  • 更新时间 :
  • 英文 :


我有一个〜15,000 12位条形码票的列表。在大多数情况下,它们会被扫描从纸张或电话屏幕上扫描,但有时它们会输入(破裂的屏幕等)使用错误类型的数字可能会最终获得另一个有效的代码?

代码编号是12位数字的整数,它们在100000000000到999999999999范围内相当随机(我们不希望引导零以与其他系统出现问题)

例如。给定三个代码编号
123456789012
123456789013
223456789012

第一和第二只有一个数字,第二个数字也不同。第一个和第三位用2位数字不同,因此被忽略。

使用哈希集。依次浏览您的15,000个数字中的每个数字,对于每个数字,在一个地方生成了与之不同的108个不同数字(每个位置的12位数乘以9位可能的替代数字)。检查哈希集合中是否存在这108个数字(不插入它们)。如果他们中有任何人这样做,那么您将受到打击。如果没有,则将未修改的数字添加到哈希集合并移至下一个。

您也可以尝试相邻数字的换位,这将为您提供108位尝试。

最新更新