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

2021-07-29 15:05:08 +08:00
 coderwl
两个订单不能投放相同的地域,如果一个订单选择了石家庄市,另一个就是不能选择河北,也不能选全国,同理一个订单选择了河北,另一个也不能选其下面的市了,这个怎么搞比较高效
1245 次点击
所在节点    问与答
4 条回复
Weny
2021-07-29 15:18:10 +08:00
行政区代码 河北( 130000 ) ,检查同省比较前两位即可
Foxkeh
2021-07-29 15:24:01 +08:00
@Weny +1, 民政部标准 adcode 比较最简单了
xkeyideal
2021-07-29 15:29:05 +08:00
参考行政区号的方式,按照省市县镇村,有多少级都可以,每一级 5 个比特位足够了,本质上就是位运算,全国当做特例处理即可,按照题述,知道市一级,那么用 4 个 bit 位存一级,例如河北石家庄市为 0011 0110,那么另外河北保定为 0011 0101, 二者按位与结果为 0011 0100 前四位与运算后不变,说明省级重复,不符合投放要求
coderwl
2021-07-30 10:34:39 +08:00
多谢各位,我研究一下位操作

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/792484

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX