package test4; import java.util.List; public class Test4A { private Test4A() { // empty by design } /** * Returns the string formed by repeating the specified string n times; each * repetition of s is separated by a comma followed by space. * *
* repeat("cat", 1) returns the string equal to "cat" * repeat("rat", 2) returns the string equal to "rat, rat" * repeat("la", 3) returns the string equal to "la, la, la" ** * @param s * the string to be repeated * @param n * the number of times to repeat s * @return the string formed by repeating the specified string n times * @pre. n is greater than zero */ public static String repeat(String s, int n) { if (n == 1) { return s; } return s + ", " + repeat(s, n - 1); } /** * Returns true if the specified string is a palindrome. A palindrome * is a string that is spelled the same backwards and forwards. The * empty string is a palindrome. * *
* isPalindrome("a") returns true * isPalindrome("at") returns false * isPalindrome("tat") returns true * isPalindrome("refer") returns true * isPalindrome("refers") returns false ** * @param s a string * @return true if the specified string is a palindrome, and false otherwise */ public static boolean isPalindrome(String s) { if (s.length() < 2) { return true; } char first = s.charAt(0); char last = s.charAt(s.length() - 1); if (first == last) { return isPalindrome(s.substring(1, s.length() - 1)); } return false; } /** * Re-orders the elements of the argument list t so that * all of the negative elements of t are in the front part * of the list and all of the positive elements of t are * in the back part of the list. If the list contains zero * or one elements then the list is not modified. There is * no guarantee of the ordering of the positive elements * or of the negative elements. * *
* Zero is considered to be a positive number for the purposes * of this method. * *
* For example, a possible solution results in the following: *
* ** if t is [] then partition(t) makes t [] * if t is [1] then partition(t) makes t [1] * if t is [-1, 2] then partition(t) makes t [-1, 2] * if t is [2, -1] then partition(t) makes t [-1, 2] * if t is [8, -2, 1] then partition(t) makes t [-2, 1, 8] * if t is [1, -5, -9, 4] then partition(t) makes t [-5, -9, 4, 1] * if t is [-3, 7, -1, 3, -5] then partition(t) makes t [-3, -1, -5, 7, 3] ** * @param t a list of integers */ public static void partition(List
* The computational complexity of the method is O(log n) where
* n is the size of the list t.
*
* @param t a sorted list
* @return the index of the element equal to zero
* @pre. the list is sorted in either ascending or descending order
* and the list contains zero
*/
public static int findZero(List