Deseja-se escrever um método Java que inverta a ordem dos caracteres existentes em um array recebido como parâmetro, conforme exemplificado na Figura a seguir.
Array antes da chamada do método | ||||||
a | b | c | d | e | f | g |
Array após a chamada do método | ||||||
g | f | e | d | c | b | a |
Esse método receberá como parâmetros o array a ser invertido e o índice do primeiro elemento do array, devendo funcionar com arrays de quaisquer comprimentos, inclusive com os de comprimentos iguais a zero.
Qual método executa essa inversão da ordem dos caracteres de acordo com as especificações apresentadas?
public static void inverte(char [] vet, int i) {
int m=vet.length / 2;
if(i < m)
return;
inverte(vet, i+1);
char aux=vet[i];
vet[i]=vet[vet.length - i - 1];
vet[vet.length - i - 1] = aux;
}
public static void inverte(char [] vet, int i) {
for ( ; i <= vet.length; i++) {
char aux=vet[i];
vet[i]=vet[vet.length - i - 1];
vet[vet.length - i - 1] = aux;
}
}
public static void inverte(char [] vet, int i) {
do {
char aux=vet[i];
vet[i]=vet[vet.length - i - 1];
vet[vet.length - i - 1] = aux;
i++;
} while (i < vet.length);
}
public static void inverte(char [] vet, int i) {
int m=vet.length / 2;
do {
char aux=vet[i];
vet[i]=vet[vet.length - i - 1];
vet[vet.length - i - 1] = aux;
i++;
} while (i < m);
}
public static void inverte(char [] vet, int i) {
int m=vet.length / 2;
if(i == m)
return;
char aux=vet[i];
vet[i]=vet[vet.length - i - 1];
vet[vet.length - i - 1] = aux;
inverte(vet, i+1);
}