#USACO423. 查找和替换

查找和替换

题目描述

给定一个由大小写英文字母构成的字符串 s1s_1,你需要通过查找替换操作将其变为另一个由大小写英文字母构成的字符串 s2s_2

每次操作可以选择一个英文字母 c1c_1 作为查找字符,再选择一个英文字母 c2c_2 作为替换字符,并将当前字符串中出现的所有 c1c_1 替换为 c2c_2

例如,如果当前字符串为 aAbBac1c_1ac2c_2B,则操作过后,当前字符串变为 BAbBB

注意,选定的 c1c_1c2c_2 必须均为英文字母(大小写均可)。

请问,为了完成目标,最少需要进行多少次操作。

输入格式

第一行包含整数 TT,表示共有 TT 组测试数据。

每组数据占两行,第一行包含字符串 s1s_1,第二行包含字符串 s2s_2

输出格式

每组数据输出一行结果,一个整数,表示最少需要的操作次数,如果无法完成目标,则输出 -1

4
abc
abc
BBC
ABC
abc
bbc
ABCD
BACD
0
-1
1
3

提示

1≤T≤10, 同一组数据的 s1s_1s2s_2 长度相等, 输入中所有字符串的长度之和不超过 10510^5

样例解释

第 1 组数据,s1s_1s2s_2 完全相同,无需任何操作。

第 2 组数据,无法完成目标,因为无法在保持第 2 个 B 不变的情况下,将第 个 B 变为 A

第 3 组数据,只需一步操作:将 a 变为 b

第 4 组数据,需要三步操作,变化过程:ABCD → EBCD → EACD → BACD