Consider the following recursive method, which is intended to return a String with any consecutive duplicate characters removed. For example, removeDupChars("aabcccd") returns "abcd".public static String removeDupChars(String str){if (str == null || str.length() <= 1){return str;}else if (str.substring(0, 1).equals(str.substring(1, 2))){return removeDupChars(str.substring(1));}else{/* missing code */}}Which of the following can replace /* missing code */ so that removeDupChars works as intended?A. return removeDupChars(str.substring(2));B. return removeDupChars(str.substring(1)) + str.substring(0, 1);C. return removeDupChars(str.substring(2)) + str.substring(1, 2);D. return str.substring(0, 1) + removeDupChars(str.substring(1));E. return str.substring(1, 2) + removeDupChars(str.substring(2));

Respuesta :

Answer:

D. return str.substring(0, 1) + removeDupChars(str.substring(1));

Explanation:

The logic here is following:

If the there are consecutive duplicate characters, return the removeDupChars method. The parameter of the removeDupChars method is a string, but the duplicate of the first character is removed from the string. The else-if part of the program does this job.

If the consecutive characters are not duplicated, return the first character of the string and the removeDupChars method. The parameter of the removeDupChars method is the rest of the string characters. The else part of the program does this job.

When the length of the str becomes one (or when the str is null), the program reaches its base and returns the str. The if part of the program does this job.

A recursive function is that function that calls itself from within.

The code statement that can replace the comment /* missing code */ is (d) return str.substring(0, 1) + removeDupChars(str.substring(1));  

The function definition is given as:

  • removeDupChars(String str)

The function has 3 linked conditional statements, each of which perform three different functions.

  • The first works for a null string and single character
  • The second and the third are to return the intended string for strings with multiple lengths.

For the third condition to work, the consecutive characters must not be duplicated.

So, the code statement that does this is (d) return str.substring(0, 1) + removeDupChars(str.substring(1));

Read more about recursive functions at:

https://brainly.com/question/25647517

Q&A Education