Write a recursive function called `shortestToLongest` which takes an array of lowercase strings and returns them sorted from shortest to longest. Strings of equal length should be sorted alphabetically. (Hint: str1 < str2 will return true if str1 comes before str2 alphabetically) Your function should accept a default argument called `sorted` which holds the currently sorted elements. Each recursive step should add the shortest string in the `strings` array to the end of `sorted`.   // Examples: // Sorts strings from shortest to longest let strings1 = ["abc", "de", "", "f", "ghijk", "lmno"] shortestToLongest(strings1); // ['', 'f', 'de', 'abc', 'lmno', 'ghijk'] // Accepts a pre-sorted default parameter let strings2 = ["pomegranate", "persimmon", "peach"]; let sorted = ["pea", "pear"]; shortestToLongest(strings2, sorted); // ['pea', 'pear', 'peach', 'persimmon', 'pomegranate'] // Sorts strings of the same length alphabetically let strings3 = ["dog", "cat", "elephant", "ant", "pig", "emu"]; shortestToLongest(strings3); // ['ant', 'cat', 'dog', 'emu', 'pig', 'elephant']

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter15: Recursion
Section: Chapter Questions
Problem 8SA
icon
Related questions
Question
100%

Write a recursive function called `shortestToLongest` which takes an array of lowercase strings and returns them sorted from shortest to longest.

Strings of equal length should be sorted alphabetically. (Hint: str1 < str2 will return true if str1 comes before str2 alphabetically)

Your function should accept a default argument called `sorted` which holds the currently sorted elements.

Each recursive step should add the shortest string in the `strings` array to the end of `sorted`.

 

// Examples: // Sorts strings from shortest to longest let strings1 = ["abc", "de", "", "f", "ghijk", "lmno"] shortestToLongest(strings1); // ['', 'f', 'de', 'abc', 'lmno', 'ghijk'] // Accepts a pre-sorted default parameter let strings2 = ["pomegranate", "persimmon", "peach"]; let sorted = ["pea", "pear"]; shortestToLongest(strings2, sorted); // ['pea', 'pear', 'peach', 'persimmon', 'pomegranate'] // Sorts strings of the same length alphabetically let strings3 = ["dog", "cat", "elephant", "ant", "pig", "emu"]; shortestToLongest(strings3); // ['ant', 'cat', 'dog', 'emu', 'pig', 'elephant']

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Follow-up Questions
Read through expert solutions to related follow-up questions below.
Follow-up Question

Thank u.

The last string needs to be alphabetical order would u use .sort()?

console.log(shortestToLongest(strings3));
// ['ant', 'cat', 'dog', 'emu', 'pig', 'elephant']
Solution
Bartleby Expert
SEE SOLUTION
Knowledge Booster
Array
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning