Görev
Bir tiyatro etiketli 10 satır vardır A
için J
soldan sağa 15 1 numaralı önden arkaya ve her satırda 15 sandalye.
Program en iyi koltukları seçmek için aşağıdaki kuralları kullanır.
- Kural 1: Bir rezervasyondaki tüm koltukların yan yana, aynı sırada olması gerekir.
- Kural 2: Koltuklar mümkün olduğunca öne, sonra sola olabildiğince yakın olmalıdır (en küçük harf, sonra en düşük sayı)
Tamsayı girişi ( n
) olarak istenen bilet sayısını alan ve uzunluk listesinde mevcut olan en iyi koltukların çıktısını veren bir işlev yazın n
.
Programınız:
- Çıktı
-1
1> Girdi veya Giriş> 15 * Eğer -1
Koltuklar mevcut değilse çıkış *B(n)
Kullanıcının istediği koltuk sayısını girmek için kullanabileceği bir işleve sahip olun.
* Eğer listeyi kolaylaştırırsa -1 çıktısını alabilirsiniz
Örnekler
I / O
Arayan B(5)
yeni dizisinde dönmelidir [A1, A2, A3, A4, A5]
çağrılması B(2)
o zaman dönmelidir sonra [A6, A7]
çağrılması B(10)
o zaman dönmelidir sonra [B1, B2, ... B9, B10]
çağrılması B(-1)
hep dönmelidir-1
Golfsiz Çözüm Python
Theatre = [ [False] * 16 ] * 11
def B(n):
if 0 <= n <= 15:
for i in range(10):
for j in range(15-n+1):
try:
if not Theatre[i][j]:
if not Theatre[i][j + n]:
row = i
start = j
List = []
for q in range(n):
List.append(chr(row + 65) + str(start + q + 1))
Theatre[row][start + q] = True
return List
except:
break
return -1