Search
[0, 1, 2, 3]
[3, 2, 1, 0]
[2, 0, 1]
[1, 2, 0]
Uvažujme hrací karty .
int
string
[1,“2”], [2,“A”], [0,“K”]
Napište funkci, který vzestupně třídí karty podle jejich barvy a podle jejich hodnoty.
cards = [ [3,"A"], [3,"Q"], [0,"2"], [1,"10"] ]
výsledek pro setřídění:
[ [0, "2"], [1, "10"], [3, "Q"], [3, "A"] ]
Seřaďte toto pole:
cards = [[0, 'Q'], [2, '6'], [1, 'K'], [1, '8'], [2, '10'], [2, '4'], [3, '4'], [0, '4'], [1, '3'], [2, '5'], [0, 'K'], [3, 'A'], [1, 'J'], [0, '3'], [0, '9']]
TE*A*QYS***SEU****NI*O**
m=[ [0,0,1,0,0,1,0,0,0,0], [0,0,1,0,0,1,0,0,0,0], [0,0,1,1,0,1,0,0,0,1], [0,0,1,0,0,0,1,0,1,0], [0,0,1,0,0,0,0,1,0,0], [0,0,1,1,0,1,0,0,0,0], [0,0,1,0,1,1,1,1,0,0], [0,0,1,0,0,1,0,1,1,1], [0,0,1,0,0,1,0,0,0,0], [0,0,1,0,0,1,0,0,0,0] ]
sys.argv[1]
barva r1 c1 r2 c2 … rn cn
r_i c_i
print()
NOSOLUTION
m = [ [ 1,1,1], [2,2,2] ] #priklad matice 2x3, kde na 1. radku lezi kamen '1' a na 2. radku kamen s barvou '2' print(m) #takto vypiste reseni
Pro načtení vstupních dat můžete využít tento program:
def readStones(filename): stones = [] #vystup funkce - seznam nactenych kamenu f = open(filename,"r") numRows = int(f.readline().strip()) #precti 1. radek ze souboru numCols = int(f.readline().strip()) #precti 2. radek ze souboru for line in f: numbers = list(map(int, line.strip().split())) #precti vsechna cisla na dalsich radcich color = numbers[0] #prvni z nich je barva kamene coords = numbers[1:] #zbyle jsou souradnice r1 c1 ... rn cn cells = [] #prevedeme [r1,c1 ... rn,cn] na pole cells = [[r1,c1], ... [rn,cn]] for i in range(len(coords)//2): cells.append( [ coords[2*i+0], coords[2*i+1] ] ) stones.append( [ color, cells ] ) f.close() return numRows, numCols, stones; M,N, stones = readStones("kameny.txt") #n-ty kamen je stones[n] #jeho barva je stones[n][0], jeho bunky jsou stones[n][1] #vypis pozic n-teho kamene: n = 0 #napriklad chceme 0.kamen for cellindex in range(len(stones[n][1])): row,col = stones[n][1][cellindex] print(row,col)
python3 fill_easy.py soubor.txt
pokud soubor.txt obsahuje:
5 5 6 0 4 0 5 -1 5 -1 4 5 4 2 4 1 4 0 3 1 3 2 3 0 2 1 2 0 2 6 4 7 4 7 3 3 -2 9 -3 9 4 7 10 8 10 8 11 9 10 6 10 5 10 1 4 14 4 13
Správné řešení je:
[[4, 5, 5, 1, 1], [4, 5, 5, 5, 3], [4, 5, 5, 5, 3], [4, 4, 2, 6, 6], [4, 2, 2, 6, 6]]
Vysvětlení: vstupní kameny vypadají takto (kameny jsou pro účel zobrazení posunuty, aby se vešly do obrázku):
Tyto kameny lze poskládat takto:
5 5 3 -5 7 -6 7 -4 7 -5 8 6 -7 1 -6 1 -6 2 -5 1 -5 2 -5 3 -5 4 4 3 12 3 11 4 11 5 7 12 8 12 1 4 -5 3 -5 3 -6 2 0 -6 -1 -6 -1 -7 -2 -7 -2 -8 -1 -8
Vysvětlení: vstupní kameny vypadají takto:
Tyto kameny nelze posládat do matice 5×5.
5 8 6 -1 0 -1 1 -1 -1 5 -8 10 -9 10 -9 11 -8 11 -7 10 -9 12 -7 9 -6 10 -6 11 7 -4 12 -3 12 -2 12 8 11 0 11 1 12 0 10 0 12 1 11 -1 10 1 13 1 3 10 0 10 1 10 2 11 1 11 0 10 -1 4 9 -2 9 -3 8 -3 8 -2 2 3 6 3 5 3 4 3 3 2 3 1 -9 -7 -10 -7
[[1, 5, 5, 5, 3, 3, 3, 3], [1, 5, 5, 8, 8, 3, 3, 7], [5, 5, 8, 8, 8, 4, 4, 7], [2, 5, 5, 8, 8, 4, 4, 7], [2, 2, 2, 2, 8, 6, 6, 6]]
fill_hard.py
[row,col]
[-col, row]
Vstupní soubor
5 5 1 13 0 13 1 13 -1 13 2 2 3 -2 3 -1 2 -2 2 -3 3 -3 2 -4 4 -1 2 -1 2 0 3 0 4 0 4 -2 4 -3 5 0 3 -3 10 -2 11 -1 10 -3 11 -2 10 -1 11 0 10
Vstupní kameny jsou:
Jedno z možných řešení:
[[2, 2, 2, 2, 2], [1, 2, 2, 2, 2], [1, 2, 2, 2, 2], [1, 3, 3, 3, 2], [1, 3, 3, 3, 3]]
Možná řešení:
3 10 4 9 -5 9 -4 10 -5 9 -3 10 -3 10 -4 8 -5 5 -9 -4 -9 -5 -8 -5 -8 -4 -9 -6 -7 -4 -7 -5 1 10 7 10 6 11 7 11 6 12 7 12 6 9 7 3 4 -5 4 -4 4 -3 2 -9 -1 -9 0 -9 1 -10 1 -11 1 -12 1
Správné řešení: