quarta-feira, 24 de outubro de 2018

URI PROBLEMA 1607 - Avance as Letras SOLUÇÃO EM JAVA

URI Online Judge | 1607

Avance as Letras

Por Bruno Adami, Universidade de São Paulo - São Carlos BR Brazil
Timelimit: 1
É dado na entrada uma string A e outra B. Em uma operação você pode escolher uma letra da primeira string e avançar esta letra. Avançar uma letra significa transformá-la na próxima letra do alfabeto, veja que a próxima letra depois de z vem a letra a novamente!
Por exemplo, podemos transformar a string ab em bd em no mínimo 3 operações: ab -> bb -> bc -> bd. Podemos aplicar operações nas letras em qualquer ordem, outra possibilidade seria: ab -> ac -> bc -> bd.
Dadas as duas strings, calcule o mínimo número de operações necessárias para transformar a primeira na segunda.

Entrada

Na primeira linha terá um inteiro T (T ≤ 100) indicando o número de casos de teste.
Para cada caso, na única linha teremos as duas strings A (1 ≤ |A| ≤ 100* ou 1 ≤ |A| ≤ 104** - sendo que |A| significa o tamanho da string A) e B (|B| = |A|* ou |B| = |A​|**) separadas por um espaço. Ambas as strings são compostas por letras do alfabeto minúsculas apenas e são do mesmo tamanho.
*Ocorre em aproximadamente 90% dos casos de teste;
**Ocorre nos demais casos de teste.

Saída

Para cada caso imprima o número mínimo de operações.



import java.io.*;

public class Main{
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
   
    public static void main(String[] args) throws IOException{
        String entrada = br.readLine();
        String[] str;
        int n = Integer.parseInt(entrada), len, a, b, trocas;
        while(n-- > 0){
            trocas = 0;
            entrada = br.readLine();
            str = entrada.split(" ");
            len = str[1].length();
            for(int i = 0; i < len; i++){
                a = (int) str[0].charAt(i);
                b = (int) str[1].charAt(i);
                if (b > a) {
                    trocas += b - a;
                } else if(a > b){
                    trocas += 26 - a + b;
                }
            }
            System.out.println(trocas);
        }
    }
}

Nenhum comentário:

Postar um comentário

URI PROBLEMA 1133 - Resto da Divisão SOLUÇÃO EM C

URI Online Judge | 1133 Resto da Divisão Adaptado por Neilor Tonin, URI   Brasil Timelimit: 1 Escreva um programa que leia 2 valo...