遍历
遍历找不同
如果能改为一样的字符就改
否则无解
import sys
input = lambda: sys.stdin.readline().strip() # 这个比input()更快
for _ in range(int(input())):
t, s = list(input()), list(input()) # 转成列表才能改
n, ans = len(s), 0 # 字符串长度 答案
for i in range(n): # 遍历 s
if s[i] != t[i]: # 发现有跟 t 不一样的字符
if 0 < i < n - 1 and s[i - 1] == s[i + 1] == t[i]: # 可以改
s[i] = t[i]
ans += 1
else: # 否则无解
ans = -1
break
print(ans)
复杂度分析
- 时间复杂度:$O(n)$
- 空间复杂度:$O(1)$