题目应该很清楚,看这个 json 数据,最大子一个节点深度为 3, 并不是统计 children 总数额,那来那么多?
我用递归实现的:
···python
def calDeep(deep, jsonVar):
if (isinstance(jsonVar,tuple)):
jsonVar = jsonVar[1]
if (isinstance(jsonVar,dict)):
return max(map(lambda x: calDeep(deep + 1, x), jsonVar.items()))
if (isinstance(jsonVar,list)):
return max(map(lambda x: calDeep(deep,x),jsonVar))
else:
return deep
if name == "main":
print(calDeep(0, json.loads(jsonVar)))
有赞和公众号 “差评” 是什么关系?求科普
这是 996 的理由吗,为以后的 007 做铺垫?都这样,以后江湖还怎么混
加班确实是软件行业的常态,但是明确强制加班这个就过分了,毕竟我们上班主要还是为了挣钱过自己的生活,我们是人不是机器,我们有自己的家庭有自己的生活,没有人情味的公司再好也不去
一个新进最基层管理的尴尬!无将可用,无兵可听
1,请假都不跟 leader 说一下,leader 被动啊。因为放水太多,leader 再三过问也是无耐之举。
2, *** 一般是需要满足某种条件才能申请使用的,并且一般说来部门有名额限制的。
3, 成本问题。至少说一声都觉得是挑刺,也没啥可讲的。
4, 用人不疑,疑人不用,leader 能参与 20% 其实足够了。不错的苗子是需要充分授权的。拿不到 A 是因为高估了,你拿了 A 说明你的潜质比你实际身价高。
感觉和找对象差不多,两个人合适了,一些儿苛刻的条件也就不算什么了。如果一个姑娘很差劲,还要求有车有房,父母双亡这样变态的要求的话,离他远远的就是了。 现在工作机会多的时候,不需要压抑自己的,过渡消耗身体嘛!
除了第四点可能有问题,其他的没毛病
首先你得做好手头的本分工作,其次,请假向领导说明是很正常的,是一种基本的礼仪 - 尊重,即使不走他那边你也要说一声毕竟 HR 不知道你手头的业务情况,只有自己的部门主管才知道
有赞的技术分享确实不错,都是干货
从团队介绍中也能看到对技术的要求以及确实有点冷漠的工作氛围
我你🐎想踢死你
这里有有赞的技术分享,感觉还不错。不过可惜了,白鸦这下 SB 了,投资人也是惊呆了。
发现社区嘴炮比较多,递归都不知道用,就直接说简单的(确实简单)
没有人情味
这也就是 leetcode easy 的水平,1% 太夸张了
1、3 都是 leader 应该重视关心的事情,你领导做的挺好
2 不一定是他自己的意思,有可能是更上层的控制
4 这种情况每个公司都有,换一家也可能还是这样,毕竟领导才是汇报工作的那个,而且这事情无法阻止和避免,看不过眼的话就换,觉得领导薪资待遇给你的都可以,表面风光给他,薪水多给你涨涨也可以呀
生在了这个竞争激烈的社会!努力吧!!!
上面的有个手误
public int testJson(JSONObject jo) {
int deepLevel = 0;
if (jo == null) {
return deepLevel;
}
Iterator it = jo.keys();
int[] levels = new int[jo.keySet().size()];
int index = 0;
while (it.hasNext()) {
int subLevel = 0;
String key = it.next();
Object v = jo.get(key);
if (v instanceof JSONObject) {
subLevel = 1+testJson((JSONObject) v);
} else if (v instanceof JSONArray) {
JSONArray array = (JSONArray) v;
if(array.length()==0){
return 1;
}
int[] subLevels = new int[array.length()];
int index2 = 0;
Iterator it2 = array.iterator();
while (it2.hasNext()) {
subLevels[index2++] = 1 + testJson((JSONObject) it2.next());
}
Arrays.sort(subLevels);
subLevel += subLevels[subLevels.length-1];
} else {
subLevel += 1;
}
levels[index] = subLevel;
}
Arrays.sort(levels);
return levels[levels.length-1];
}
普通的通过遍历的解法
public int testJson(JSONObject jo) {
int deepLevel = 0;
if (jo == null) {
return deepLevel;
}
Iterator it = jo.keys();
int[] levels = new int[jo.keySet().size()];
int index = 0;
while (it.hasNext()) {
int subLevel = 0;
String key = it.next();
Object v = jo.get(key);
if (v instanceof JSONObject) {
subLevel = 1+testJson((JSONObject) v);
} else if (v instanceof JSONArray) {
JSONArray array = (JSONArray) v;
if(array.length()==0){
return 1;
}
int[] subLevels = new int[array.length()];
int index2 = 0;
Iterator it2 = array.iterator();
while (it2.hasNext()) {
subLevels[index2++] = 1 + testJson((JSONObject) it2.next());
}
Arrays.sort(subLevels);
subLevel += subLevels[0];
} else {
subLevel += 1;
}
levels[index] = subLevel;
}
Arrays.sort(levels);
return levels[levels.length-1];
}
我建议你还是直接走吧,换个能让你满意的环境
想到了栈,用编译原理那套
有赞是啥公司?
人家搞这套价值观是建立在对等的薪酬上,而有赞搞这套,我就呵呵了!
我他🐎真想给你来一下
看到这个估计就不想去了。