从业务上抽离出来的问题。
条件:
假设有一个已知的list:
List<String> list= new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
……
假设每一个字母代表一个人,人与人之间有两种关系:相容与互斥。通过isFriendly(a,b)可以获得两人之间的关系。
一个朋友圈中所有人都必须相容,且无法再加入其他成员。
例如list有4个人A、B、C、D, AB互斥 其他均相容 ,则可以得到两个朋友圈{ACD} {BCD}
——————
求:如何得到所有不同的朋友圈?