input: Write a function to find the longest common substring in two given strings. If there are multiple longest common substrings, return any one. If there are no common substrings, the function should return an empty string. The function should take two strings as input and return the longest common substring as a string.
  def longestCommonSubstring(string1, string2):
      n1=len(string1)
      n2=len(string2)
      
      L=[[0 for _ in range(n2+1)]for _ in range(n1+1)]
      longestSubstring=""
      longestSubstringLength=0
      for i in range(1, n1+1):
          for j in range(1, n2+1):
              if string1[i-1]==string2[j-1]:
                  L[i][j]=L[i-1][j-1]+1
                  if L[i][j]>longestSubstringLength:
                      longestSubstringLength=L[i][j]
                      longestSubstring=string1[i-1-longestSubstringLength+1:i]
              else:
                  L[i][j]=0
      return longestSubstring
  
  assert longestCommonSubstring("abcdef", "bcdefg")=="bcdef"
  assert longestCommonSubstring("hello", "world")=="l"
  assert longestCommonSubstring("programming", "gaming")=="ming"
  assert longestCommonSubstring("python", "java")==""
  assert longestCommonSubstring("", "")==""
output: def longestCommonSubstring(string1, string2):
      n1=len(string1)
      n2=len(string2)
      
      L=[[0 for _ in range(n2+1)]for _ in range(n1+1)]
      longestSubstring=""
      longestSubstringLength=0
      for i in range(1, n1+1):
          for j in range(1, n2+1):
              if string1[i-1]==string2[j-1]:
                  L[i][j]=L[i-1][j-1]+1
                  if L[i][j]>longestSubstringLength:
                      longestSubstringLength=L[i][j]
                      longestSubstring=string1[i-1-longestSubstringLength+1:i]
              else:
                  L[i][j]=0
      return longestSubstring