logo CodeStepByStep logo


Language/Type: C++ recursion return
Related Links:
Author: Marty Stepp (on 2016/06/16)

Write a recursive function named matchCount that accepts two references to vectors of integers as parameters and that returns the number of elements that match between them. Two elements match if they occur at the same index in both vectors and have equal values. For example, given the two vectors shown below, the call of matchCount(v1, v2) would compare as follows:

v1: {2, 5, 0, 3, 8, 9, 1, 1, 0, 7}
     |  |  |  |  |  |  |
v2: {2, 5, 3, 0, 8, 4, 1}

The function should return 4 in this case because 4 of these pairs match (2-2, 5-5, 8-8, and 1-1). If either vector is empty, by definition it has no matches with the other vector, so your function should return 0.

Constraints: Your function must be recursive and not use any loops (for, while, etc.). You may not use a string, array, or any data structure (stack, map, set, etc.) other than the vectors passed. When your code is done running, the two vectors should have the same contents as when the call began. Either do not modify the vectors, or if you do modify them, restore them to their original state afterward. Note again that you may not declare any additional data structures. Your solution should run in no worse than O(N) time, where N is the number of elements in the vectors.

Type your C++ solution code here:

This is a function problem. Write a C++ function as described. Do not write a complete program; just the function(s) above.

You must log in before you can solve this problem.

Log In

Need help?

If you do not understand how to solve a problem or why your solution doesn't work, please contact your TA or instructor.
If something seems wrong with the site (errors, slow performance, incorrect problems/tests, etc.), please

Is there a problem? Contact a site administrator.

© Marty Stepp, all rights reserved.