V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coderwl
V2EX  ›  问与答

省市的冲突校验有什么好的算法吗?

  •  
  •   coderwl · 2021-07-29 15:05:08 +08:00 · 1257 次点击
    这是一个创建于 1237 天前的主题,其中的信息可能已经有所发展或是发生改变。
    两个订单不能投放相同的地域,如果一个订单选择了石家庄市,另一个就是不能选择河北,也不能选全国,同理一个订单选择了河北,另一个也不能选其下面的市了,这个怎么搞比较高效
    4 条回复    2021-07-30 10:34:39 +08:00
    Weny
        1
    Weny  
       2021-07-29 15:18:10 +08:00 via iPhone
    行政区代码 河北( 130000 ) ,检查同省比较前两位即可
    Foxkeh
        2
    Foxkeh  
       2021-07-29 15:24:01 +08:00
    @Weny +1, 民政部标准 adcode 比较最简单了
    xkeyideal
        3
    xkeyideal  
       2021-07-29 15:29:05 +08:00
    参考行政区号的方式,按照省市县镇村,有多少级都可以,每一级 5 个比特位足够了,本质上就是位运算,全国当做特例处理即可,按照题述,知道市一级,那么用 4 个 bit 位存一级,例如河北石家庄市为 0011 0110,那么另外河北保定为 0011 0101, 二者按位与结果为 0011 0100 前四位与运算后不变,说明省级重复,不符合投放要求
    coderwl
        4
    coderwl  
    OP
       2021-07-30 10:34:39 +08:00
    多谢各位,我研究一下位操作
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3475 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:57 · PVG 18:57 · LAX 02:57 · JFK 05:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.