解题思路:
每一组判断t字符串和s字符串中相同索引的字符是否相等,只有101和010情况可以进行翻转
注意事项:
考虑边界,若不相同则直接结束循环返回-1
参考代码:
# 翻转(纯模拟)
d = int(input())
def match(t,s):
count = 0
n = len(t)
# 考虑边界(不存在左右边元素)
if t[0]!=s[0] or t[-1]!=s[-1]:
return -1
# 遍历中间部分
for key in range(1,n-1):
# 若t和s相同则执行下一元素
if t[key] != s[key]:
# 遍历到的s中元素和两边棋子不一样
if s[key-1] == s[key+1] and s[key] != s[key-1]:
s[key]=t[key]
count += 1
else:
return -1
else:
continue
return count
ans = []
for i in range(d):
t=list(input())
s=list(input())
ans.append(match(t,s))
for i in ans:
print(i)
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复