用java从给定的范围生成加拿大邮政编码



我已经搜索了一段时间,但没有找到任何解决方案。例如,如果给定的范围类似[A0A0A0-A0P1M9]-它应该为给定范围提供所有可能的有效加拿大邮政编码。TIA。

示例:输入自:A0A0A0输入至:A0A0A4输出:A0A0A0、A0A0A1、A0A0A2、A0A0A3、A0A0A4

我会根据10和26进制的混合系统,将可能的字符串代码转换为连续数字,并将字符值乘以位置相关因子:

  • 10*26*10*26*10的char 0
  • 26*10*26*10的字符1
  • 10*26*10的char 2
  • 26*10的char 3
  • 10的char 4
  • 1的char 5

通常,我会将A..Z表示为0..25,只是(为了首先避免丢失W和Z字符处的间隙(我会调整该位置的映射。

然后,我会产生两个转换极限之间的所有数字,并用相反的方案将它们转换回来。

请注意,在最坏的情况下,A0A0..Y9Z9Z9将获得1600万个字符串。

最新更新