Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

PYTHON LANGUAGE In this assignment, you are going to write a recursive Python function that is similar to the reverse function we have studied in

PYTHON LANGUAGE

image text in transcribedimage text in transcribedimage text in transcribed

In this assignment, you are going to write a recursive Python function that is similar to the "reverse" function we have studied in Chapter4 The function is named "consonantReverse". This function will take a string and return a new string (this is because in Python, strings are immutable) that has all consonants in the reverse order of the input string but leaving the vowels in their original place. Here are a few examples: consonantReverse Data') >'taDa' consonantRever 'Algorithms') >'Asmohitrgl' consonantReverse Structures') > 'srtucrutes consonantReverse Datastructures'> saratcrutSuteD' Download the three files "cse220a2Tester.", "cse220a2TestData.", and "csc220a2.py" from Canvas and save them in the same folder. The first two files are the tester program and the testing data file, respectively. Do not modify these two files. The last file is the file you will work on. Note that you cannot rename this file and you cannot change the name of the function (otherwise the tester will not be able to pick up your implementation). However, you can change the name of the parameter if you like The file "csc220a2." contains a dummy implementation of the function that returns a hard coded incorrect value: def consonantReverse (inputString, start 0, end None): return '' Note that in order to facilitate the recursion, we have added two parameters with default value These two parameters will not be used by the tester, but it is needed by your function to call itself recursively The tester program will use the testing data to test your implementation. It will run a total of 100 test cases. If you have not made any change to the function, it should produce the following output: Passed: [1 - total 0 Failed: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 1001 - total 100 0 of 100 test cases passed. Score = 0.00 of 15.00 Notes: You can assume that the input string contains only English letters ('A'-'Z, and any other characters will appear in the input string 1. -2), no 2. Your function should not change the capitalization of characters in the string (see examples above). Your function must be a recursive function 3. 4. Your program will be tested with similar but different data. The testing results will earn you up to 15 points (out of 20 points total) 5. The remaining 5 points will be awarded based on the structure, readability, and documentation of your implementation 6. You implementation should be compatible to Python 3.x. 7. There cannot be any import statement in your program 8. There can be only one single function (the consonantReverse function) in the "csc220a2." file. No other helper method(s) is/are allowed The tester contains a function runTestCase", this function takes a testcase number and run that single testcase. It will produce a more verbose output to help you debug your program. 9. 10. Your function should have performance linear to the length of the input string This can be a problem since Python strings are immutable. If you return a new string during each recursive step, your function will have O (n2) performance. This is because the returned string during each recursive step will need to be copied, which have an O(n) performance. To solve this problem, we will need to first convert the string into a list of characters, then the reverse operation can be performed on the list, and finally convert the list back into a string. Therefore, you may have to do something similar to the following: def consonantReverse (data, start 0, end - None): if type (data) str: data list (data) consonantReverse (data) return '".join (data)

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Systems For Advanced Applications 15th International Conference Dasfaa 2010 International Workshops Gdm Benchmarx Mcis Snsmw Diew Udm Tsukuba Japan April 2010 Revised Selected Papers Lncs 6193

Authors: Masatoshi Yoshikawa ,Xiaofeng Meng ,Takayuki Yumoto ,Qiang Ma ,Lifeng Sun ,Chiemi Watanabe

2010th Edition

3642145884, 978-3642145889

More Books

Students also viewed these Databases questions

Question

describe the main employment rights as stated in the law

Answered: 1 week ago