解题思路:
每一组判断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语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:540 |
C语言训练-尼科彻斯定理 (C语言代码)浏览:469 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:642 |
【矩阵】 (C++代码)浏览:950 |
DNA (C语言代码)浏览:741 |
输入输出格式练习 (C语言代码)浏览:753 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:598 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:544 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:610 |
小O的乘积 (C++代码)浏览:755 |