Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
21
Task/Balanced-brackets/Groovy/balanced-brackets-1.groovy
Normal file
21
Task/Balanced-brackets/Groovy/balanced-brackets-1.groovy
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
def random = new Random()
|
||||
|
||||
def factorial = { (it > 1) ? (2..it).inject(1) { i, j -> i*j } : 1 }
|
||||
|
||||
def makePermutation;
|
||||
makePermutation = { string, i ->
|
||||
def n = string.size()
|
||||
if (n < 2) return string
|
||||
def fact = factorial(n-1)
|
||||
assert i < fact*n
|
||||
|
||||
def index = i.intdiv(fact)
|
||||
string[index] + makePermutation(string[0..<index] + string[(index+1)..<n], i % fact)
|
||||
}
|
||||
|
||||
def randomBrackets = { n ->
|
||||
if (n == 0) return ''
|
||||
def base = '['*n + ']'*n
|
||||
def p = random.nextInt(factorial(n*2))
|
||||
makePermutation(base, p)
|
||||
}
|
||||
11
Task/Balanced-brackets/Groovy/balanced-brackets-2.groovy
Normal file
11
Task/Balanced-brackets/Groovy/balanced-brackets-2.groovy
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
boolean balancedBrackets(String brackets, int depth=0) {
|
||||
if (brackets == null || brackets.empty) return depth == 0
|
||||
switch (brackets[0]) {
|
||||
case '[':
|
||||
return brackets.size() > 1 && balancedBrackets(brackets[1..-1], depth + 1)
|
||||
case ']':
|
||||
return depth > 0 && (brackets.size() == 1 || balancedBrackets(brackets[1..-1], depth - 1))
|
||||
default:
|
||||
return brackets.size() == 1 ? depth == 0 : balancedBrackets(brackets[1..-1], depth)
|
||||
}
|
||||
}
|
||||
13
Task/Balanced-brackets/Groovy/balanced-brackets-3.groovy
Normal file
13
Task/Balanced-brackets/Groovy/balanced-brackets-3.groovy
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
Set brackets = []
|
||||
(0..100).each {
|
||||
(0..8).each { r ->
|
||||
brackets << randomBrackets(r)
|
||||
}
|
||||
}
|
||||
|
||||
brackets.sort { a, b ->
|
||||
a.size() <=> b.size() ?: a <=> b
|
||||
} .each {
|
||||
def bal = balancedBrackets(it) ? "balanced: " : "unbalanced: "
|
||||
println "${bal} ${it}"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue