- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有这个面试题。
写一个函数来展平字典数组example_input:
example_input= [{a:{b:{c:{d:'e'}}}}, {a:{b:{c:{d:{e:'f'}}}}}]
example_output: [{a_b_c_d:'e'}, {a_b_c_d_e:'f'}]
上面的输入可以映射到什么样的数据结构?
class Node {
String s;
Node node;
}
我尝试使用这个 Node 类,它会导致 {node:{node:{node:{s:'value'}
而不是 {a:{b:{c :{d:'e'}}}}
.
最佳答案
不要忘记字典是一对 (key, value)
的集合,具有键唯一的不变性。所以你可以将它们表示为:
class Dict {
List<Pair> pairs;
}
Pair
在哪里
class Pair {
String key;
Dict value;
}
或者如果你想要更一般的概念:
class Pair<T> {
T key;
Dict value;
}
请注意,您可以将单个值表示为一个 Pair
的 Dict
,值为 null
。然后你的展平功能无效
Dict flatten(Dict dict) {
Dict new_dict = new Dict();
for (Pair pair : dict.pairs) {
if (pair.value == null)
new_dict.pairs.add(pair);
else
new_dict.pairs.addAll(combine(pair.key, flatten(pair.value)));
}
}
List<Pair> combine(String key, Dict value) { //here value is a flattened dict
List<Pair> pairs = new ArrayList<Pair>();
for (Pair pair : value.pairs) {
pairs.add(new Pair(key + "_" + pair.key, pair.value));
}
return pairs;
}
关于java - 扁平化字典的采访Q,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32878177/
在一场比赛中,唯一可以得分的是 2、3、4、5、6、7、8,并且可以得分任意次数 该队能打出的组合总数是多少,能达到50分的分数。 示例 8,8,8,8,8,8,2 有效 8,8,8,8,8,4,4,
在一次面试中,我被要求(除其他外)实现以下功能: int StrPrintF(char **psz, const char *szFmt, ...); 类似于 sprintf,除了函数必须自己分配它而
我最近看到一个面试问题,问以下问题: Given a 32 bit number, write pseudo code to flip the second last bit 最好/最简单的方法是什么
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
大家好,我收到这个面试问题,但遇到了麻烦。我熟悉泛型/集合和迭代器,但声明集合的方式完全让我困惑。 问题如下:所提供的工作区中包含 cocI,它是实现迭代器的类的开始,该迭代器可用于迭代集合的集合。集
在没有任何条件或比较运算符的情况下执行以下操作。 if (Number = MAX_INT/2),在这种情况下加法可能会导致溢出。 下面的解决方案解决了溢出问题: 2. print( (abs(Num
我最近看到一家公司的这个面试问题,它说: Group of people, you can call Know(i, j) to ask if ith person knows jth, the re
刚刚接受了 TripAdvisor 的电话面试(没有成功)。 我得到了下面的代码并要求我实现 findBestTravelAlert(用 Java)。 给定一个 TravelAlert 对象列表,找到
我在面试中被问到这个问题。以下哪个更好用 MyInput.equals("Something"); 或者 "Something".equals(MyInput); 谢谢 最佳答案 我会去的 "S
我们在办公室面试时会问这样一个问题。为了保持一致性,我将其上下文限制为 python。我确定还有其他答案,但我真的只对 python 答案感兴趣。 给我写一个名为 say 的函数,当这样调用时: >>
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
节点删除的这种实现是否有效,还是我失败了? void remove_node(node *p) { node **i = &node_list; for (;(*i) != NULL
大型软件公司之一问了这个问题。我想出了一个简单的解决方案,我想知道其他人对该解决方案有何看法。 You are supposed to design an API and a backend for
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
如果我要在 UITableview 中显示 500 条记录,并且我们在 cellforRowAtIndexPath 中使用 reuseIdentifier 实现,一次有 4 条记录(Cell)可见,据
给定一个排序数组,其中包含一些序列号和一些非序列号。编写一个算法,将此数组作为输入并返回所有连续数字的 {start, end} 列表。连续数字仅相差 1。 例如数组: [4, 5, 6, 7, 8,
为java中的集合设计一个迭代器。迭代器应该隐藏嵌套,允许您迭代属于所有集合的所有元素,就好像您在处理单个集合一样 最佳答案 这是一个老问题,但如今(2019 年)我们有了 JDK8+ 好东西。特别是
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
给你两组整数,大小为 M 和 N,其中 M M.size or b > N.size if M[a] < N[b] a++ continue if N
有人问我这个问题:similar question在谷歌。类似的问题在 Facebook 采访中被问到。 Determine winner of 2/9 number game Two players
我是一名优秀的程序员,十分优秀!