设 maxnumber=0,number=0,然后把 json 里每个字符一个一个地读,读到 “{” 则 number+1,读到 “}” 则 number-1,读到其他则 number+0,每次 number+1 后就比较 number 和 maxnumber 直接的大小,如果 number>maxnumber 则 maxnumber=number,最后得出的 maxnumber 就是你要的结果
现场手写肯定写不出来真正能 work 的
沟通
最重要的还是,工作中发现了什么问题痛点,做了什么,怎么做的,达成了什么效果,解决了什么问题痛点,仅仅追求技术没有理解是没办法成长的。
当你完成一轮后你就明白了,就会打开新世界的大门。
老板招你是解决问题的,不是秀技术的,技术为业务服务,脱离了业务的技术毫无用处
抑郁症吧
我只会递归实现…之前写过从 json 中获取给定 key 值的列的表递归方法,实现方式跟这个差不多,就是递归,像剥洋葱。
比较笨的方法是用递归
我测试了一下发现不对。。
友盟的 SDK 就是收集数据,App 的开发者在使用的时候也是知道,况且他们不仅仅是想用这部分数据,而是想得到数据给带来的服务
不要直接质疑你的领导,因为领导大部分是记仇的
但你可以再给这小伙一点压力再测试一下他,至于结果不好说;若再出现这样的结果让领导处理他。
备注:
1.很明显,你只是个小头目,人事的事你管不了,所以你也不要去主动管。
2.小伙这样干,也很可能是不太想在这里工作了,所以人家可能马上就要走了。。。
如果认为 list 和 dict 就算 1 级,那么其他类型就是最后一级了?
class Test:
def test(self, par, t):
if isinstance(par, dict):
t += 1
for i in par:
self.test(par[i], t)
if isinstance(par, list):
t += 1
for i in par:
self.test(i, t)
if not isinstance(par, (dict, list)):
print(t)
if __name__ == '__main__':
s = {"item":{"data":{"text":"123"},"children":[{"data":{"text":"234"},"children":[]},{"data":{"text":"345"},"children":[{"data":{"text":"456"},"children":[]},{"data":{"text":"plid"},"children":[{"data":{"text":"567"},"children":[]},{"data":{"text":"678"},"children":[]}]}]}]}}
Test().test(s, 0)
计数器 + 递归 + 迭代器
我看到第二级子节点会有多个 data 节点,多个 data 节点里面会有多个并列的不确定长度和深度的 Children 节点,请问只统计 “}” 是否准确?
加油,好运
都能过腾讯的面试筛选却答不上这道题,不太相信。
空的 [] 算不算 json 子节点?
学习能力强的人太多了, 态度不好就不要重点培养了,自身自灭好了.
不要质疑领导决定的事。
社区高手很多,我觉得像我这样答不出来的不超过 1%。
看到{ +1
} -1
保留最大数,收工。
这个做法,太不专业了吧。起码讲一声吧。。对于不批的,我还没试过不批的。。包括早上睡过头,而早上请假的。。。
题目还有更多细节需要沟通才清楚,我这里假定 list 类型不算一个深度,如果 list 也算的话就在切分一次
class Solution(object):
def max_deep(self, json_object):
if len(json_object) == 0:
return 0
list_json_object = str(json_object).split('{')
max_count = 0
init_count = 0
for json_str in list_json_object:
if '}' in json_str:
init_count -= json_str.count('}')
else:
init_count += 1
if init_count > max_count:
max_count = init_count
return max_count
他估计想的的 就算请假,领导也不会批,干脆直接点吧 哈哈哈哈
遍历树?
感觉用栈和一个普通的计数就可以解决吧。
把测试设计和执行分开纯粹是工厂流水线的做法,并不适合脑力劳动行业。