CSC207 - Lab 13
Functional Practice
Overview
This lab is repetitive practice writing functions for many different situations involving
strings, lists and boolean conditions.
Description
Success on large programming project can depend on your ability to program small useful
functions. For this lab,
- Write a function for each of the problems below.
- Make sure your function matches the outputs listed.
- Develop three test cases of your own which fully test your function.
- Record the output of your function on your three test cases in a Google Doc.
Sandwiches
A sandwich is two pieces of bread with something in between. Write a function
getSandwich(s) that will return the string that is between the first and
last appearance of "bread" in the given string, or return the empty string "" if there
are not two pieces of bread.
getSandwich("breadjambread") → "jam"
getSandwich("xxbreadjambreadyy") → "jam"
getSandwich("xxbreadyy") → ""
xyBalance
We'll say that a String is xy-balanced if for all the 'x' chars in the string, there is a 'y'
char somewhere later in the string. So "xxy" is balanced, but "xyx" is not.
Write a function xyBalance(s) that will return True if the given string is xy-balanced.
xyBalance("aaxbby") → True
xyBalance("aaxbb") → False
xyBalance("yaaxbb") → False
TripleUp
Write a function tripleUp(t) that will return True if the list contains,
somewhere, three increasing adjacent numbers like .... 4, 5, 6, ... or 23, 24, 25.
tripleUp([1, 4, 5, 6, 2]) → True
tripleUp([1, 2, 3]) → True
tripleUp([1, 2, 4]) → False
evenOdd
Write a function evenOdd(t) that will return a list that contains the exact
same numbers as the given list, but rearranged so that all the even numbers come before all
the odd numbers. Other than that, the numbers can be in any order. You may modify and return
the given list, or make a new list.
evenOdd([1, 0, 1, 0, 0, 1, 1]) → [0, 0, 0, 1, 1, 1, 1]
evenOdd([3, 3, 2]) → [2, 3, 3]
evenOdd([2, 2, 2]) → [2, 2, 2]
canBalance
Given a non-empty list, write a function canBalance(t) that will return True if
there is a place to split the list so that the sum of the numbers on one side is equal to the
sum of the numbers on the other side.
canBalance([1, 1, 1, 2, 1]) → True
canBalance([2, 1, 1, 2, 1]) → False
canBalance([10, 10]) → True
Thanks to Nick Parlante at JavaBat.com for these
exercise ideas.