制造字母异位词的最小步骤数-LeetCode1347

本算法的核心在于学习【】内标注的思想

class Solution {
    
    
    public int minSteps(String s, String t) {
    
    
        int length = s.length(); // s与t长度相同
        int[] counts = new int[26]; // 26个字符的个数
        for (int i = 0; i < length; i++) {
    
    
            char c1 = s.charAt(i),
                    c2 = t.charAt(i); // 遍历字符串拿到对应字符
            counts[c1 - 'a']++; // 记录字符的个数(不考虑顺序)【相同字符时可以相抵,不同字符时只考虑s+】
            counts[c2 - 'a']--;
        }
        int steps = 0; // 返回次数
        for (int i = 0; i < 26; i++) {
    
    
            if (counts[i] > 0) {
    
    
                steps += counts[i];
            }
        }
        return steps;
    }
}

猜你喜欢

转载自blog.csdn.net/for62/article/details/108015196