logo CodeStepByStep logo


Language/Type: C# recursion string return
Related Links:

Write a recursive method named CollapseSequences that accepts a string s and char c as parameters and returns a new string that is the same as s but with any sequences of consecutive occurrences of c compressed into a single occurrence of c. For example, if we collapse sequences of character 'a' in the string "aabaaccaaaaada", you get "abaccada".

Your method is case-sensitive; if the character c is, for example, a lowercase 'f', your method should not collapse sequences of uppercase 'F' characters. In other words, you do not need to write code to handle case issues in this problem.

The following table shows several calls and their expected return values:

Call Returns
CollapseSequences("aabaaccaaaaaada", 'a') "abaccada"
CollapseSequences("mississssipppi", 's') "misisipppi"
CollapseSequences("babbbbebbbxbbbbbb", 'b') "babebxb"
CollapseSequences("palo alto", 'o'); "palo alto"
CollapseSequences("tennessee", 'x') "tennessee"
CollapseSequences("", 'x') ""

Constraints: Do not declare any global variables. Do not use any loops; you must use recursion. Do not call any of the following string member methods: find, rfind, indexOf, contains, replace, split. (The point of this problem is to solve it recursively; do not use a library method to get around recursion.) Do not use any auxiliary data structures like List, SortedDictionary, SortedSet, array, etc. You can declare as many primitive variables like ints as you like, as well as strings. You are allowed to define other "helper" methods if you like; they are subject to these same constraints.

Method: Write a C# method as described, not a complete program or class.

You must log in before you can solve this problem.

Log In

Need help?

Stuck on an exercise? Contact your TA or instructor.

If something seems wrong with our site, please

Is there a problem? Contact us.