input: Write a function to find the longest common substring in two given strings. If no common substring is found, return an empty string. Compare the characters of the two strings and keep track of the longest matching substring found. Return the substring with the maximum length.
  
  def longest_common_substring(str1, str2):
      match = 0
      substr = ""
      for i in range(len(str1)):
          for j in range(len(str2)):
              l = 0
              while (i + l < len(str1) and j + l < len(str2) and str1[i + l] == str2[j + l]):
                  l += 1
              if l > match:
                  substr = str1[i:i + l]
                  match = l
      return substr
  
  assert longest_common_substring("Helwallomst", "Welcome") == "ell"
  assert longest_common_substring("abcdef", "xyz") == ""
  assert longest_common_substring("programming", "programmer") == "program"
  assert longest_common_substring("abcde", "xyzabc") == "abc"
  assert longest_common_substring("", "abc") == ""
output: def longest_common_substring(str1, str2):
      match = 0
      substr = ""
      for i in range(len(str1)):
          for j in range(len(str2)):
              l = 0
              while (i + l < len(str1) and j + l < len(str2) and str1[i + l] == str2[j + l]):
                  l += 1
              if l > match:
                  substr = str1[i:i + l]
                  match = l
      return substr