aboutsummaryrefslogtreecommitdiff
path: root/challenge-042/wanderdoc/R/ch-2.R
blob: ceb4b6c8a89f15cf782805e4b3e624042169ce51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
ml <- sample(seq(6,20,2), 20, replace=TRUE)
v.base <- c("(", ")")
fair <- 1

simple_brackets <- function(x)
{
  v.s <- sample(v.base, x, TRUE)
  return(v.s)
}





fair_brackets <- function(x)
{
  v.f <- character(x)
  v.base <- c("(", ")")
  ob <- ifelse(v.base=="(",0.75,0.25)
  cb <- ifelse(v.base==")",0.75,0.25)
  v.f[1] = "("
  for(i in 2:(x-1))
  {
    if(v.f[i-1] == "(") v.f[i] <- sample(v.base, 1, TRUE, prob = cb)
    if(v.f[i-1] == ")") v.f[i] <- sample(v.base, 1, TRUE, prob = ob)

  }
  v.f[x] <- ")"
  return(v.f)
}



for (lenstr in ml)
{
  v.chr <- character(lenstr)
  if(fair == 1) v.chr <- fair_brackets(lenstr)
  else          v.chr <- simple_brackets(lenstr)


  counter<-0


  
  for(ch in v.chr)
  {
    if(ch == ")" ) counter <- counter - 1;
    if (counter < 0) break;
    
    if(ch == "(" ) counter <- counter + 1;
  }
  ok <- ifelse(counter == 0,'OK', 'NOT OK')

  print(paste(paste0(v.chr, collapse=""), ok))
}