Maximum Length Common Suffix Problem is defined as follows: Input: a list of L of n strings over the lowercase English alphabet of various lengths, maximum 10 characters Output: the longest common suffix among all the strings, or if they do not have a common suffix. A suffix is a list of characters attached at the end of a word; for example, the word "letter" has as suffixes the empty string, the word itself, and "r", "er", "ter", "tter", and "etter". Design a divide-and-conquer algorithm for it similar to merge sort algorithm and write a pseudocode for it. If you write multiple drafts, mark clearly your final draft. Hint: I expect your algorithm's time complexity ends up being O(n log n). For your convenience, the seudocode of decrease-by-half is given below. Examples: Input: n=4, L ={ "salty", "beauty", "meaty", "beatty") Output:"ty" Input: n-8, L-{"lot", "plot", "bylot", "dulot", "camelot", "effilot", "hairlot", "lelot"} Output="lot" Input: n=9, L={"lol", "tutu", "aba", "ddr", "bcc", "cnn", "ddt", "effi", "hota", "mbrr"} Output="" (Corner case) input: n=4, L-{ "salty uty", "meaty", ""} Output="" def decrease_by_half(instance): if then return else L, R = solution_L = decrease by half(L) solution_R = decrease by half(R) instance solution = return instance solution

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
Maximum Length Common Suffix Problem is defined as follows:
Input: a list of L of n strings over the lowercase English alphabet of various lengths, maximum 10 characters
Output: the longest common suffix among all the strings, or
if they do not have a common suffix.
A suffix is a list of characters attached at the end of a word; for example, the word "letter" has as suffixes the empty
string, the word itself, and "r", "er", "ter", "tter", and "etter".
Design a divide-and-conquer algorithm for it similar to merge sort algorithm and write a pseudocode for it. If you
write multiple drafts, mark clearly your final draft. Hint: I expect your algorithm's time complexity ends up being O(n
log n). For your convenience, the seudocode of decrease-by-half is given below.
Examples:
Input: n=4, L ={ "salty", "beauty", "meaty", "beatty") Output:"ty"
Input: n=8, L-{"lot", "plot", "bylot", "dulot", "camelot", "effilot", "hairlot", "lelot"} Output="lot"
Input: n=9, L={"lol", "tutu", "aba", "ddr", "bcc", "cnn", "ddt", "effi", "hota", "mbrr"} Output=""
(Corner case) input: n=4, L={ "salty",
uty", "meaty", ""} Output=""
def decrease by_half(instance):
if <THIS IS A BASE CASE> then
return <BASE CASE SOLUTION>
else
L, R = <DIVIDE instance INTO TWO INSTANCES OF ROUGHLY EQUAL SIZE>
solution_L = decrease by half(L)
solution_R = decrease by half(R)
instance solution = <COMBINE solution_L WITH solution_R>
return instance solution
Transcribed Image Text:Maximum Length Common Suffix Problem is defined as follows: Input: a list of L of n strings over the lowercase English alphabet of various lengths, maximum 10 characters Output: the longest common suffix among all the strings, or if they do not have a common suffix. A suffix is a list of characters attached at the end of a word; for example, the word "letter" has as suffixes the empty string, the word itself, and "r", "er", "ter", "tter", and "etter". Design a divide-and-conquer algorithm for it similar to merge sort algorithm and write a pseudocode for it. If you write multiple drafts, mark clearly your final draft. Hint: I expect your algorithm's time complexity ends up being O(n log n). For your convenience, the seudocode of decrease-by-half is given below. Examples: Input: n=4, L ={ "salty", "beauty", "meaty", "beatty") Output:"ty" Input: n=8, L-{"lot", "plot", "bylot", "dulot", "camelot", "effilot", "hairlot", "lelot"} Output="lot" Input: n=9, L={"lol", "tutu", "aba", "ddr", "bcc", "cnn", "ddt", "effi", "hota", "mbrr"} Output="" (Corner case) input: n=4, L={ "salty", uty", "meaty", ""} Output="" def decrease by_half(instance): if <THIS IS A BASE CASE> then return <BASE CASE SOLUTION> else L, R = <DIVIDE instance INTO TWO INSTANCES OF ROUGHLY EQUAL SIZE> solution_L = decrease by half(L) solution_R = decrease by half(R) instance solution = <COMBINE solution_L WITH solution_R> return instance solution
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY