Anonymous user
Balanced brackets: Difference between revisions
m
→{{header|R}}: reordering
(Go solution) |
m (→{{header|R}}: reordering) |
||
Line 1,359:
=={{header|R}}==
<lang r>
balanced <- function(str){▼
str <- strsplit(str, "")[[1]]
str <- ifelse(str=='[', 1, -1)
all(cumsum(str) >= 0) && sum(str) == 0
}</lang>▼
▲<lang r>balanced <- function(str) {
regexpr('^(\\[(?1)*\\])*$', str, perl=TRUE) > -1
}</lang>
<lang R>rand.parens <- function(n) paste(permute(c(rep('[',n),rep(']',n))),collapse="")
▲#generate some examples
as.data.frame(within(list(), {
parens <- replicate(10, rand.parens(sample.int(10,size=1)))
balanced <- sapply(parens, balanced)
}))</lang>
▲</lang>
Output:
<lang r> balanced parens
1 FALSE ][][
|