Jump to content

Balanced brackets: Difference between revisions

m
→‎{{header|R}}: reordering
(Go solution)
m (→‎{{header|R}}: reordering)
Line 1,359:
=={{header|R}}==
 
<lang r>rand.parensbalanced <- function(n) paste(permute(c(rep('[',n),rep(']',n))),collapse=""str){
 
balanced <- function(str){
str <- strsplit(str, "")[[1]]
str <- ifelse(str=='[', 1, -1)
all(cumsum(str) >= 0) && sum(str) == 0
}</lang>
}
 
#Alternately, using perl 5.10-compatible regexps,
 
balanced <- function(str) {
<lang r>balanced <- function(str) {
regexpr('^(\\[(?1)*\\])*$', str, perl=TRUE) > -1
}</lang>
}
 
#To generate some some examples:
 
<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:
Sample output:
<lang r> balanced parens
1 FALSE ][][
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.