擅长:python、mysql、java
<p>如果您完全不关心键,并确保对值将构成一个完整的圆。我想你可以试试这个:</p>
<p>用dict(增强查询性能)存储每个数的两个邻居,从任意数开始,然后经过循环链,直到它再次到达自己。你知道吗</p>
<pre><code>def reverse_pairs(input_dict):
pair_values = list(input_dict.values())
neighbors = defaultdict(list)
for num1, num2 in pair_values:
neighbors[num1].append(num2)
neighbors[num2].append(num1)
res = [pair_values[0]]
while res[0][0] != res[-1][1]:
a1, b1 = res[-1]
a2, b2 = neighbors[b1]
res.append([b1, a2 if a1 != a2 else b2])
return res
</code></pre>
<p>测试用例:</p>
<pre><code>def test():
dict1 = {0: [3, 5], 1: [5, 7], 2: [7, 4], 3: [4, 3]}
print(reverse_pairs(dict1))
dict2 = {'foo': [2, 9], 'bar': [3, 2], 'baz': [3, 9]}
print(reverse_pairs(dict2))
</code></pre>
<p>输出:</p>
<pre><code>[[3, 5], [5, 7], [7, 4], [4, 3]]
[[2, 9], [9, 3], [3, 2]]
</code></pre>
<p>希望这能对你有所帮助,如果你有进一步的问题,请发表评论。:)</p>