问题
str={'Tom':'1,2,3','Jack':'1,5,9','Bob':'2','Li':'2,7'}在Tom的数字中发现有1,那就要把Jack的5,9给Tom;
在Tom的数字中发现有2,那就要把Li的7给Tom,Bob只有一个2,没有其他数字,没法给;
在Tom的数字中发现有3,Jack、Bob、Li都没有3,没法给;
...
最后得出:
str_related={'Tom':'5,9,7','Jack':'2,3','Bob':'1,3,7','Li':'1,3'}不知道描述清楚没?
真实的情况:人员很多,至少10k,数字至少100k
怎么高效写这段程序?谢谢
答案1:
可以如此拆分
const objLast = {}
const tempTom = []
const tom = str['Tom'].solit(',')
tom.map((item, i)=> {
for(let key in str) {
if(key != 'Tom') {
tempTom.concact(getLastOfArr(str[key].split(','), item))
}
}
})
objLast.Tom = tempTom.join()
function getLastOfArr(arr, removeKey) {
return arr.filter((item, index) => {
item != removeKey
})
}因为不知道你这些参数是不是确定的,所以大概这么写
后续才发现 你要的是php写法,我上面是js写法 ,可以看看思路~~~~
婚纱影楼小程序提供了一个连接用户与影楼的平台,相当于影楼在微信的官网。它能帮助影楼展示拍摄实力,记录访客数据,宣传优惠活动。使用频率高,方便传播,是影楼在微信端宣传营销的得力助手。功能特点:样片页是影楼展示优秀摄影样片提供给用户欣赏并且吸引客户的。套系页是影楼根据市场需求推出的不同套餐,用户可以按照自己的喜好预定套系。个人中心可以查看用户预约的拍摄计划,也可以获取到影楼的联系方式。
0
答案2:
python3 set
data = {'Tom':{1,2,3},'Jack':{1,5,9},'Bob':{2},'Li':{2,7}}
rslt = {}
for k in data:
s=set()
for x in data:
if k!=x:
s |= data[k]&data[x] and data[x]-data[k]
rslt[k] = s
print(rslt)结果:
{'Jack': {2, 3}, 'Tom': {9, 5, 7}, 'Li': {1, 3}, 'Bob': {1, 3, 7}}优化~
先计算一遍,保存有效集合,避免不必要的重复计算。
data = {'Tom':{1,2,3},'Jack':{1,5,9},'Bob':{2},'Li':{2,7}}
valid = {} # 有效值
for k in data:
for x in data:
key = '%s-%s'%(x, k)
if k != x \
and (key not in valid) \
and data[k] & data[x] \
and data[x] - data[k] \
:
valid[key] = data[x] - data[k]
rslt = {}
for k in data:
s=set()
for x in data:
s |= valid.get('%s-%s'%(x, k),set())
rslt[k] = s
print(rslt)
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号