The Python Code Challenge to Count the Question Marks

My protracted, imperfect solution

Winding, non-straight road in the country
Photo by Kees Streefkerk on Unsplash

This week I decided to try another python code challenge and found these 5 problems in Daniel Borowski’s Medium article. I decided to try problem #1; it seemed straightforward enough — until it wasn’t. It took me several days to complete this — working on it here and there in fits and starts — and my solution is not pythonic or elegant. Here it is anyway.

The challenge:

Here are the example test cases I used (‘testa’ is my creation and ‘testb’ is Daniel’s) :

My first step was to find the digits in the test string and determine if there was a pair of numbers (I went with consecutive numbers, not combinations of all numbers) that equal 10. If there is a pair equal to 10, those two numbers are appended to a list called ‘success’, otherwise the list is empty.

And the result:

result of the code snippet above
result of the code snippet above

Step two was to split the test string into a list of separate elements.

The return:

result of the code snippet above
result of the code snippet above

Finally, time for the big show! And for me to put the bits and pieces together. The main function calls sum_finder and checks if the return is an empty string (print “False” and the program ends) or has a pair of numbers equal to 10.

The test string is split into a list, using the split function, the indices of the two numbers determined, and a smaller list is created. The smaller list is a slice of the larger string of the characters between the number pair. A question mark counter is set to 0, the slice is iterated over to count the question marks in the slice and if there are exactly 3 question marks “True” is printed out. Otherwise, it is “False”.

Challenge Solved!

Even as I write this, I know my code is overdone and could be much cleaner. However, success was reaching the end of this challenge on my own. Refactoring resides in the future.