#6025. 环形密码
环形密码
题目描述
某实验室使用了一种特殊的环形密码锁来保护设备安全。 密码锁由一个圆环组成,圆环上均匀分布着若干个小写字母(任意两个小写字母之间的距离相同),首尾相连,形成一个闭合的圆环。
密码锁仅支持旋转操作:将当前圆环整体顺时针或逆时针旋转一格(每次只能旋转一格)。无论怎样旋转,始终有一个字母位于圆环的最上方。 从位于最上方的字母开始,顺时针读取出来的字符串,为当前密码锁的密码。
例如,当前圆环显示的状态为:
a
e b
d c
从位于最上方的字母 a 开始,顺时针读取出来的密码为:abcde。
如果将圆环顺时针旋转一格,则密码锁的显示状态变为:
e
d a
c b
此时,从位于最上方的字母 e 开始,顺时针读取出来的密码为:eabcd。
将初始密码为 abcde 的密码锁,逆时针旋转一格,则密码锁的显示状态变为:
b
a c
e d
此时,从位于最上端的字母 b 读取出来的密码为:bcdea。
现给定密码锁的初始密码和经过若干次旋转后的得到的目标密码,请你编程计算出:在每一次旋转可以任意选择顺时针或逆时针旋转一格的前提下,最少旋转多少次,才能得到该目标密码。
输入格式
第 1 行读入仅由小写字母组成的字符串 ,表示密码锁的初始密码。 第 2 行读入仅由小写字母组成的字符串 ,表示密码锁经过若干次旋转后的目标密码。
输出格式
输出一个整数,代表最少需要旋转的次数。
样例输入 1
abcde
deabc
样例输出 1
2
样例输入 2
qrmldzobnecvk
mldzobnecvkqr
样例输出 2
2
样例输入 3
sjnmwqogfdyzleauhir
zleauhirsjnmwqogfdy
样例输出 3
8
说明/提示
样例解释 1
初始密码为 abcde,目标密码为 deabc。
旋转过程如下:
第 1 次顺时针旋转:abcde → eabcd。
第 2 次顺时针旋转:eabcd → deabc。
最少需要 2 次旋转,因此输出 。
数据规模与约定
对于 的数据,满足字符串 和 的长度在 的范围内。 测试数据保证:字符串仅由小写英文字母组成,初始密码经过若干次旋转一定能得到目标密码,且初始密码、目标密码均由不同的小写字母组成。