Сообщение от ksa
|
Для получения всех комбинаций циклов нужно столько, сколько скобок.
|
Я делал циклы по числу пар, но ничего не получается. Я лишь только подстроился к результату, а это неверно.
вот приблизительный код (здесь другой язык, но думаю понятно будет)
private static Set<String> getSetCombinations(List<String> list, int numberOfMethodsPairs) {
Set<String> stringsSet = new HashSet<>();
StringBuilder builder = new StringBuilder();
boolean isPair = false;
boolean isLock = false;
int countPair = 0;
builder = new StringBuilder();
/*работа с методами unlock. В качестве ограничителя
* смотриться количество методов unlock идущих подряд */
for (int k = 0; k < list.size(); k++) {
String element = list.get(k);
if (addRestOfCode(element, builder)) {
continue;
}
if (element.equals(LOCK) && !isLock && countPair != numberOfMethodsPairs) {
builder.append(element);
isLock = true;
isPair = false;
countPair++;
}
if (element.equals(UNLOCK) && !isPair) {
builder.append(element);
isLock = false;
isPair = true;
}
}
String stringSet = builder.toString();
if (builder.length() != 0) {
stringsSet.add(stringSet);
}
return stringsSet;
}