天天看点

1153. 字符串转化

给出两个长度相同的字符串,分别是 str1 和 str2。请你帮忙判断字符串 str1 能不能在 零次 或 多次 转化后变成字符串 str2。

每一次转化时,将会一次性将 str1 中出现的 所有 相同字母变成其他 任何 小写英文字母(见示例)。

只有在字符串 str1 能够通过上述方式顺利转化为字符串 str2 时才能返回 True,否则返回 False。

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/string-transforms-into-another-string

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

import java.util.Arrays;

class Solution {
    public boolean canConvert(String str1, String str2) {
        if (str1.equals(str2)) {
            return true;
        }
        int[] from = new int[26], to = new int[26];
        Arrays.fill(from, -1);
        Arrays.fill(to, -1);
        for (int i = 0; i < str1.length(); i++) {
            int a = str1.charAt(i) - 'a', b = str2.charAt(i) - 'a';
            if (from[a] >= 0 && from[a] != b) {
                return false;
            }
            from[a] = b;
            to[b] = a;
        }
        for (int i : to) {
            if (i < 0) {
                return true;
            }
        }
        return false;

    }
}
           

心之所向,素履以往 生如逆旅,一苇以航