Итак, я новичок в python и пробую несколько разных задач кодирования. Для этого задания требуется следующее:
Мы рассматриваем алфавит только с тремя буквами: «a», «b» и «C». Строка называется разной, если никакие три последовательных буквы не совпадают. Другими словами, разнородная строка не может содержать строки «aaa», «bbb» или «ccc».
Написать функцию: class Solution {public String solution (int A, int B, int C);} что, учитывая три целых числа A, B и C, возвращает любую максимально длинную разнородную строку, содержащую не более A букв «a», не более B букв «b» и не более C букв «c». Если нет возможности построить какую-либо строку, верните пустую строку. Примеры: 1. Если A = 6, B = 1 и C = 1, ваша функция может возвращать «aabaacaa». Обратите внимание, что "aacaabaa" также будет правильным ответом. Ваша функция может вернуть любой правильный ответ. 2. Учитывая A = 1, B = 3 и C = 1, ваша функция может возвращать «abbcb», «bcbab», «bacbb» или любую из нескольких других строк. 3. Учитывая A = 0, B = 1 и C = 8, ваша функция должна возвращать «ccbcc», который является единственным правильным ответом в этом случае,
Предположим, что: A, B и C являются целыми числами в пределахдиапазон [0..100);A + B + C> 0.
Я попытался создать несколько операторов if и код скомпилировался, однако в примере теста (6, 1, 1) выдается ошибка, любая помощь или исправленный код будут с благодарностью приняты. Как решить эту проблему.
def solution(A, B, C):
rt = ""
while (0<A or 0<B or 0<C) :
#more b append "bba"
if (A<B):
if (0<B):
rt = rt+'b'
B -= 1
if (0<B):
rt+='b'
B -= 1
if (0<A):
rt+='a'
A -= 1
#more a appand aab
elif (B < A):
if (0 < A):
rt += 'a'
A -= 1
if (0 < A):
rt += 'a'
A -= 1
if (0 < B):
rt += 'b'
B -= 1
#more c append ccb
elif (B < C):
if (0 < C):
rt += 'c'
A -= 1
if (0 < C):
rt += 'c'
A -= 1
if (0 < B):
rt += 'b'
B -= 1
#more a appenc aac
elif (C < A):
if (0 < A):
rt += 'a'
A -= 1
if (0 < A):
rt += 'a'
A -= 1
if (0 < C):
rt += 'c'
C -= 1
#more c append cca
elif (A<C):
if (0<C):
rt = rt+'c'
B -= 1
if (0<C):
rt+='c'
B -= 1
if (0<A):
rt+='a'
A -= 1
#more b append bbc
elif (C<B):
if (0<B):
rt = rt+'b'
B -= 1
if (0<B):
rt+='b'
B -= 1
if (0<A):
rt+='c'
C -= 1
# Equal number of a, b and c
# append "abc"
else :
if (0 < A):
rt += 'a'
A -= 1
if (0 < B):
rt += 'b'
B -= 1
if (0 < C):
rt += 'c'
C -= 1
print(rt)
pass
Ожидается вывод, что буква не встречается 3 раза подряд. Примеры: a = 1 b = 2 c = 4 должен возвращать вывод примерно так: cacbbcc или accbcbc и т. Д.
не что-то вроде этого: acbcccb обратите внимание, что c происходит 3 раза подряд