private String recombine(String word1, String word2){
    return word1.substring(0,word1.length()/2)+word2.substring(word2.length()/2,word2.length());
}

System.out.println(recombine("hello","World"));
herld

b.

import java.util.Arrays;

private String[] mixedWords(String[] words){
    String[] temp = new String[words.length];
    for(int i = 0; i< words.length; i+=2){
        temp[i] = recombine(words[i],words[i+1]);
        temp[i+1] = recombine(words[i+1],words[i]);
    }
    return temp;
}

String[] strings = new String[4];
strings[0] = "apple";
strings[1] = "pear";
strings[2] = "this";
strings[3] = "cat";

System.out.println(Arrays.toString(mixedWords(strings)));
[apar, peple, that, cis]

Question 2

a.

public static int getPeakIndex(int[] array){
    int index = -1;
    int maxValue = Integer.MIN_VALUE;
    for(int i = 1; i<array.length-1;i++){
        int value = array[i];
        if(maxValue < value && value > array[i-1] && value > array[i+1]){
            index = i;
            maxValue = value;
        }
    }
    //peak should not be at the end
    if(array[array.length-1]>maxValue){ 
        index = -1;
    }

    return index;
}

int[] input = new int[5];
input[0] = 99;
input[1] = 33;
input[2] = 55;
input[3] = 77;
input[4] = 55;
System.out.println(getPeakIndex(input));
input[0] = 99;
input[1] = 33;
input[2] = 55;
input[3] = 77;
input[4] = 120;
System.out.println(getPeakIndex(input));

3
-1

b.

public static boolean isMountain(int[] array){
    int peak = getPeakIndex(array);
    if(peak == -1){return false;};

    for (int i = peak-1; i>= 0; i--){
        if(array[i+1] < array[i]){
            return false;
        }
    }
    for (int i = peak+1; i< array.length; i++){
        if(array[i-1] < array[i]){
            return false;
        }
    }
    
    return true;
}

int[] input1 = new int[5];
input1[0] = 99;
input1[1] = 33;
input1[2] = 55;
input1[3] = 77;
input1[4] = 55;
System.out.println(isMountain(input1));
input1[0] = 99;
input1[1] = 33;
input1[2] = 55;
input1[3] = 77;
input1[4] = 120;
System.out.println(isMountain(input1));
input1[0] = 11;
input1[1] = 33;
input1[2] = 55;
input1[3] = 77;
input1[4] = 55;
System.out.println(isMountain(input1));
false
false
true