Carregando

Problema do LeetCode#3146

Permutation Difference between Two Strings

Resolvido em 1 linguagemJava

Resolver no LeetCode(abre em uma nova aba)

Solução

21 linhas
1class Solution {
2    // time O(1) because always O(26) characters
3    // space O(1)
4    public int findPermutationDifference(String s, String t) {
5        // we cannot assume s is sorted in alphabetical order if split into
6        // separate characters, so we have to build an array of their indices.
7        int[] indices = new int[26];
8        for (int i = 0 ; i < s.length(); i++) {
9            indices[s.charAt(i) - 'a'] = i;
10        }
11
12        int sum = 0;
13        for (int i = 0; i < t.length(); i++) {
14            int diff = indices[t.charAt(i) - 'a'] - i;
15            int absoluteDiff = diff < 0 ? -diff : diff;
16            sum += absoluteDiff;
17        }
18
19        return sum;
20    }
21}

Quer uma explicação desta solução em Java?

Receba uma explicação passo a passo da ideia por trás do código.

Todos os problemas

Os enunciados dos problemas pertencem ao LeetCode e estão em leetcode.com. Não temos vínculo com o LeetCode.