input: Write a function to sort words in a given string by their length in decreasing alphabetical order. The function should split the input string into a list of words, create a list of tuples where the first element is the length of the word and the second element is the word itself, sort the list of tuples according to the length of the word, and then join the sorted words back into a single string.
  
  assert sort_words_by_length("The quick brown fox jumps over the lazy dog")=="quick fox jumps lazy brown dog the over The"
  assert sort_words_by_length("This is a test string")=="string test This is a"
  assert sort_words_by_length("Sorting by length and alphabetical order")=="Sorting alphabetical length order by and"
  assert sort_words_by_length("")==""
  assert sort_words_by_length("Singleword")=="Singleword"
output: def sort_words_by_length(s):
      words = s.split()
      tuples = [(len(word), word) for word in words]
      tuples.sort(key=lambda x: (-x[0], x[1]))
      sorted_words = [t[1] for t in tuples]
      return ' '.join(sorted_words)