package test4; import java.util.List; public class Practice4A { private Practice4A() { // empty by design } /** * Returns the string starting with n, followed by a * comma and a space, followed by n - 1, followed by a * comma and a space, and so on, ending with 0. For example: * *
     * countdown(0) returns the string equal to "0" 
     * countdown(1) returns the string equal to "1, 0" 
     * countdown(2) returns the string equal to "2, 1, 0"
     * countdown(3) returns the string equal to "3, 2, 1, 0"
     * 
     * 
     * @param n a value to count down from
     * @return a string as described above
     * @pre. n is greater than or equal to zero
     */
    public static String countdown(int n) {
        if (n == 0) {
            return "0";
        }
        return n + ", " + countdown(n - 1);
    }
    
    
    /**
     * Returns the string equal to the string formed by
     * removing all of the 'a' and 'A' characters from the
     * argument string s.
     * 
     * * For example: *
* *
     * removeA("") returns the empty string
     * removeA("a") returns the empty string
     * removeA("B") returns the string equal to "B"
     * removeA("ABA") returns the string equal to "B"
     * removeA("BananA") returns the string equal to "Bnn"
     * removeA("aaaaAAAaaA") returns the empty string.
     * 
     * 
     * 
     * @param s a string
     * @return the string equal to removing all of the lower
     * and uppercase a's from the argument string s
     */
    public static String removeA(String s) {
        if (s.isEmpty()) {
            return s;
        }
        char first = s.charAt(0);
        if (first == 'a' || first == 'A') {
            return removeA(s.substring(1));
        }
        return first + removeA(s.substring(1));
    }
    
    /**
     * Computes the sum of the elements in the argument list
     * t starting from the first element and skipping every
     * second element. The sum of an empty list is zero.
     * 
     * * For example: *
* *
     * if t is []                 then sumSkip(t) returns 0
     * if t is [1]                then sumSkip(t) returns 1 
     * if t is [-1, 2]            then sumSkip(t) returns -1 
     * if t is [1, 2, 8]          then sumSkip(t) returns 9 
     * if t is [1, 0, -9, 4]      then sumSkip(t) returns -8 
     * if t is [1, 2, 12, -3, 15] then sumSkip(t) returns 28 
     * 
     * 
     * @param t a list of integer values
     * @return the sum of all of the elements of t having an
     * even index
     */
    public static int sumSkip(List
     * if t is []                 then maxSum(t, 1) returns 0
     * if t is [1]                then maxSum(t, 1) returns 1 
     * if t is [10]               then maxSum(t, 1) returns 0
     * if t is [10, 20, 32]       then maxSum(t, 31) returns 30 
     * if t is [20, 10, 32]       then maxSum(t, 100) returns 62  
     * if t is [7, 30, 8, 22, 6, 1, 14] then maxSum(t, 19) returns 16 
     * 
     * 
     * @param t a list of integer values
     * @param n the value not to exceed
     * @return a value less than or equal to n formed by
     * summing elements of t
     */
    public static int maxSum(List