解题思路:
每一组判断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.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论