input: Write a function to generate a Markov chain given a text input. The function should return a string of generated text consisting of up to 100 words based on the Markov chain model. If the input text is empty, the function should return an empty string.
  
  def generateMarkov(text):
    if not text:
      return ""
    words = text.split(' ')
    markovChain = {}
  
    for i in range(len(words) - 2):
      current = words[i]
      next = words[i + 1]
      if current in markovChain:
        if next in markovChain[current]:
          markovChain[current][next] += 1
        else:
          markovChain[current][next] = 1
      else:
        markovChain[current] = {next: 1}
  
    generatedText = ""
    current = random.choice(list(markovChain))
    generatedText += current
  
    for i in range(100):
      choices = markovChain[current]
      choices = [
        key for key, value in choices.items()
        for i in range(value)
      ]
      try:
        current = random.choice(choices)
        generatedText += " " + current
      except:
        break
  
    return generatedText
  
  import random
  
  text = 'Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, `and what is the use of a book,' thought Alice `without pictures or conversation?'
  
  assert generateMarkov(text).startswith('Alice was')
  assert generateMarkov('').strip() == ''
  assert generateMarkov('A B A C').startswith('A')
output: def generateMarkov(text):
    if not text:
      return ""
    words = text.split(' ')
    markovChain = {}
  
    for i in range(len(words) - 2):
      current = words[i]
      next = words[i + 1]
      if current in markovChain:
        if next in markovChain[current]:
          markovChain[current][next] += 1
        else:
          markovChain[current][next] = 1
      else:
        markovChain[current] = {next: 1}
  
    generatedText = ""
    current = random.choice(list(markovChain))
    generatedText += current
  
    for i in range(100):
      choices = markovChain[current]
      choices = [
        key for key, value in choices.items()
        for i in range(value)
      ]
      try:
        current = random.choice(choices)
        generatedText += " " + current
      except:
        break
  
    return generatedText