помогите найти ошибку в коде на питоне
Решала такую задачу:У Васи есть прямоугольное поле, которое состоит из 2 строк и n столбцов. Каждая ячейка имеет цвет: красный, зелёный или синий.
У Васи дальтонизм и он не отличает зелёный цвет от синего. Определите, одинаково ли Вася видит первую и вторую строку поля? Входные данные:
6
2
RG
RB
4
GRBG
GBGB
5
GGGGG
BBBBB
7
BBBBBBB
RRRRRRR
8
RGBRRGBR
RGGRRBGR
1
G
G
выходные данные:
YES
NO
YES
NO
YES
YES
написала по этой задаче код, вроде все в порядке, но код на тесты выводит неверные ответы. Помогите пожалуйста!!! мой код:
n=int(input())
ans=[]
for i in range(n):
q=int(input())
l1=list(map(str, input().split(" ")))
l2=list(map(str, input().split(" ")))
w=11
for j in range(len(l1)):
if w==11:
if (l1[j]=="R" and l2[j]!="R") or (l1[j]!="R" and l2[j]=="R"):
w=12
if not ((l1[j]=="R" and l2[j]!="R") or (l1[j]!="R" and l2[j]=="R")) and w==11 and j==len(l1)-1:
ans.append("YES")
w=11
if not ((l1[j]=="R" and l2[j]!="R") or (l1[j]!="R" and l2[j]=="R")) and w==11 and not (j==len(l1)-1):
w=11
if w!=11:
ans.append("NO")
for s in range(len(ans)):
print(ans[s])
переписывала много раз, уже почти отчаялась найти ошибку, очень прошу о помощи
Ответы (2 шт):
# принимаем количество тестов
n = int(input())
# создаем пустой список для хранения ответов
ans = []
# для каждого теста
for i in range(n):
# принимаем количество элементов и два списка
q = int(input())
l1 = list(map(str, input().split(" ")))
l2 = list(map(str, input().split(" ")))
# инициализируем переменную w
w = 11
# для каждого элемента в списках
for j in range(len(l1)):
# если w равна 11
if w == 11:
# если l1[j] равна "R" и l2[j] не равна "R", или наоборот
if (l1[j] == "R" and l2[j] != "R") or (l1[j] != "R" and l2[j] == "R"):
# устанавливаем w в 12
w = 12
# если l1[j] и l2[j] не содержат "R" и w равна 11 и это последний элемент
elif not ((l1[j] == "R" and l2[j] != "R") or (l1[j] != "R" and l2[j] == "R")) and w == 11 and j == len(l1) - 1:
# добавляем "YES" в список ответов и устанавливаем w в 11
ans.append("YES")
w = 11
# если l1[j] и l2[j] не содержат "R" и w равна 11 и это не последний элемент
elif not ((l1[j] == "R" and l2[j] != "R") or (l1[j] != "R" and l2[j] == "R")) and w == 11 and not (j == len(l1) - 1):
# устанавливаем w в 11
w = 11
# если w не равна 11
if w != 11:
# добавляем "NO" в список ответов
ans.append("NO")
# добавляем "YES" или "NO" в список ответов в зависимости от значения w
if w == 11:
ans.append("YES")
else:
ans.append("NO")
# выводим все ответы
for s in ans:
print(s)
Ответы такие же как и у вас в примере, по тому что G=B Возможно вы имели ввиду что-то другое, если да дайте примеры правильных ответов. Так же не понимаю зачем вам так много кода и лишние переменные, по возможности объясните.
ans=[]
n=int(input())
for iter in range(n):
l1=input('Line 1:').replace('G', 'B')
l2=input('Line 2:').replace('G', 'B')
if l1 == l2:
ans.append("YES")
else:
ans.append("NO")
for s in range(len(ans)):
print(ans[s])