我在面试中遇到了一个有趣的问题,但我无法回答它,也没有在Google上找到答案。
问题如下:
你获得了一个数据流。通过变量声明,你如何找出数据中是否存在重复或循环。
数据流的示例如下:
100100100100
0001000100010001
100100010001
10...0010....010....01(where 0....0 is 0^10^10^10)
这个问题该如何解决?有没有针对这种问题的算法?
我在面试中遇到了一个有趣的问题,但我无法回答它,也没有在Google上找到答案。
问题如下:
你获得了一个数据流。通过变量声明,你如何找出数据中是否存在重复或循环。
数据流的示例如下:
100100100100
0001000100010001
100100010001
10...0010....010....01(where 0....0 is 0^10^10^10)
一种简单粗暴的解决方案是使用map或dictionary,例如对于流100100100100
,它将是:
dict["1"]++
dict["10"]++
dict["100"]++
dict["1001"]++
我们需要重复查找直到最大长度。然后我们删除第一个符号并重复,即删除1
,分析剩下的00100100100
:
dict["0"]++
dict["00"]++
dict["001"]++
dict["0010"]++
最后,我们遍历map,并打印所有具有多个值的键。
虽然还有更高效的算法,但我认为这是最简单的。
max_len_of_repetition_to_find
,它将作为一个滑动窗口... - Andriy Berestovskyy