/** * Finds the longest common suffix among the strings in an array. For example, * if arr is [“gladly”, “badly”, “boodly”, “sadly”], the method returns the * string “dly”. If arr is [“foo”, “food”], the method returns an empty string. * * @param arr array of strings * @return longest common suffix */ public static String longestCommonSuffix(String[] arr) {
/** * Finds a permutation with the property that if arr is rearranged according to * that permutation, it will end up in ascending order. That is, for an array * arr, after executing the code * *
* int[] p = findPermutationToSort(arr); * rearrange(arr, p); *
* * the array arr is sorted. For example, if arr is [12, 7, 2, 5, 8], the method * returns the array [4, 2, 0, 1, 3]. You can assume that the given array has no * duplicates. * * @param arr given array * @return permutation that will rearrange arr to be sorted in ascending order */ public static int[] findPermutationToSort(int[] arr) {