เราสามารถจัดเก็บตารางที่มีแต่เลข 0 กับ 1 ด้วย dict ที่มี
- key 'shape' ที่มี value เป็น
tuple 2 ช่องเก็บจำนวนแถวและจำนวนคอลัมน์
- key 'data' ที่มี value เป็น dict ที่มี
- key เป็นเลขแถว
- value เป็นลิสต์เก็บเลขคอลัมน์ในแถวนั้นที่มีข้อมูลเป็น 0
- คำว่าเลขแถวเลขคอลัมน์ คืออินเด็กซ์ของแถวและคอลัมน์
เช่น ตาราง
1111111
1110110
1000001
1111111
1111011
1111111
เก็บด้วย dict
{
'shape': (6,7),
'data': {
0: [],
1: [3,6],
2: [3,1,2,4,5],
4: [4]
}
}
ให้สังเกตว่า แถว 0, 3 และ 5 ไม่มีเลข 0 เลย
อาจมีหรือไม่มีเลขแถวใน dict ก็ได้
จงเขียนฟังก์ชัน f(x)
- รับ x เป็น dict ที่แทนตารางในลักษณะข้างต้น
- คืนลิสต์ของลิสต์ [i,j] ต่าง ๆ ที่
- i น้อยกว่า j
- i กับ j เป็นเลขแถวของคู่แถวที่ไม่มี 0 อยู่ใน
คอลัมน์เดียวกันของสองแถวนั้น
- ลำดับของข้อมูลในลิสต์ผลลัพธ์จะเป็นอย่างไรก็ได้
เช่น ตาราง
101
010
100
111
แทนด้วย
x = {
'shape': (4,3),
'data' : {0:[1], 1:[0,2], 2:[1,2]}
}
คำสั่ง f(x) จะคืน [[0,1], [0,3], [1,3], [2,3]]
def f(x):
out = list()
R = x['shape'][0]
d = x['data']
for i in range(R):
for j in range(i+1, R):
si = sj = set()
if i in d: si = set(d[i])
if j in d: sj = set(d[j])
if len(si & sj) == 0:
out.append([i,j])
return out
----------------------------
เราสามารถจัดเก็บตารางที่มีแต่เลข 0 กับ 1 ด้วย dict ที่มี
- key 'shape' ที่มี value เป็น
tuple 2 ช่องเก็บจำนวนแถวและจำนวนคอลัมน์
- key 'data' ที่มี value เป็น dict ที่มี
- key เป็นเลขแถว
- value เป็นลิสต์เก็บเลขคอลัมน์ในแถวนั้นที่มีข้อมูลเป็น 0
- คำว่าเลขแถวเลขคอลัมน์ คืออินเด็กซ์ของแถวและคอลัมน์
เช่น ตาราง
1111111
1110110
1000001
1111111
1111011
1111111
เก็บด้วย dict
{
'shape': (6,7),
'data': {
0: [],
1: [3,6],
2: [3,1,2,4,5],
4: [4]
}
}
ให้สังเกตว่า แถว 0, 3 และ 5 ไม่มีเลข 0 เลย
อาจมีหรือไม่มีเลขแถวใน dict ก็ได้
จงเขียนฟังก์ชัน f(x)
- รับ x เป็น dict ที่แทนตารางในลักษณะข้างต้น
- คืนลิสต์ของลิสต์ [i,j] ต่าง ๆ ที่
- i น้อยกว่า j
- i กับ j เป็นเลขแถวของคู่แถวที่มี 0 อยู่ใน
คอลัมน์เดียวกันอย่างหนึ่งคอลัมน์ของสองแถวนั้น
- ลำดับของข้อมูลในลิสต์ผลลัพธ์จะเป็นอย่างไรก็ได้
เช่น ตาราง
101
010
100
111
แทนด้วย
x = {
'shape': (4,3),
'data' : {0:[1], 1:[0,2], 2:[1,2]}
}
คำสั่ง f(x) จะคืน [[0, 2], [1, 2]]
def f(x):
out = list()
R = x['shape'][0]
d = x['data']
for i in range(R):
for j in range(i+1, R):
si = sj = set()
if i in d: si = set(d[i])
if j in d: sj = set(d[j])
if len(si & sj) > 0:
out.append([i,j])
return out
-------------------------------
เราสามารถจัดเก็บตารางที่มีแต่เลข 0 กับ 1 ด้วย dict ที่มี
- key 'shape' ที่มี value เป็น
tuple 2 ช่องเก็บจำนวนแถวและจำนวนคอลัมน์
- key 'data' ที่มี value เป็น dict ที่มี
- key เป็นเลขแถว
- value เป็นลิสต์เก็บเลขคอลัมน์ในแถวนั้นที่มีข้อมูลเป็น 0
- คำว่าเลขแถวเลขคอลัมน์ คืออินเด็กซ์ของแถวและคอลัมน์
เช่น ตาราง
1111111
1110110
1000001
1111111
1111011
1111111
เก็บด้วย dict
{
'shape': (6,7),
'data': {
0: [],
1: [3,6],
2: [3,1,2,4,5],
4: [4]
}
}
ให้สังเกตว่า แถว 0, 3 และ 5 ไม่มีเลข 0 เลย
อาจมีหรือไม่มีเลขแถวใน dict ก็ได้
จงเขียนฟังก์ชัน f(x)
- รับ x เป็น dict ที่แทนตารางในลักษณะข้างต้น
- คืน ลิสต์ [i,j] ที่
- i น้อยกว่า j
- i กับ j เป็นเลขแถวของคู่แถวที่เมื่อรวมพิจารณา
ทั้งสองแถวจะมีจำนวน 0 มากสุด
- ถ้ามี 0 ที่คอลัมน์เดียวกันทั้งสองแถว
ให้คิดตัวเดียวในคอลัมน์นั้น
- ถ้ามีมากสุดหลายคู่แถว ก็คืนสัก 1 คู่
เช่น ตาราง
10111
01101
10011
11111
แทนด้วย
x = {
'shape': (4,5),
'data' : {0:[1], 1:[0,3], 2:[1,2]}
}
คำสั่ง f(x) จะคืน [1, 2]
def f(x):
R = x['shape'][0]
d = x['data']
a = []
for i in range(R):
for j in range(i+1, R):
si = sj = set()
if i in d: si = set(d[i])
if j in d: sj = set(d[j])
a.append((len(si | sj), [i,j]))
return max(a)[1]
-------------------------------
เราสามารถจัดเก็บตารางที่มีแต่เลข 0 กับ 1 ด้วย dict ที่มี
- key 'shape' ที่มี value เป็น
tuple 2 ช่องเก็บจำนวนแถวและจำนวนคอลัมน์
- key 'data' ที่มี value เป็น dict ที่มี
- key เป็นเลขแถว
- value เป็นลิสต์เก็บเลขคอลัมน์ในแถวนั้นที่มีข้อมูลเป็น 0
- คำว่าเลขแถวเลขคอลัมน์ คืออินเด็กซ์ของแถวและคอลัมน์
เช่น ตาราง
1111111
1110110
1000001
1111111
1111011
1111111
เก็บด้วย dict
{
'shape': (6,7),
'data': {
0: [],
1: [3,6],
2: [3,1,2,4,5],
4: [4]
}
}
ให้สังเกตว่า แถว 0, 3 และ 5 ไม่มีเลข 0 เลย
อาจมีหรือไม่มีเลขแถวใน dict ก็ได้
จงเขียนฟังก์ชัน f(x)
- รับ x เป็น dict ที่แทนตารางในลักษณะข้างต้น
- คืน ลิสต์ [i,j] ที่
- i น้อยกว่า j
- i กับ j เป็นเลขแถวของคู่แถวที่มี 0 อยู่ในคอลัมน์
ที่ไม่เหมือนกัน (คือ ถ้ามีในแถวหนึ่งจะไม่มีในอีกแถว)
เป็นจำนวนมากสุด ถ้ามีมากสุดหลายคู่แถว ก็คืนสัก 1 คู่
เช่น ตาราง
10111
01001
10011
11111
แทนด้วย
x = {
'shape': (4,5),
'data' : {0:[1], 1:[0,2,3], 2:[1,2]}
}
คำสั่ง f(x) จะคืน [0, 1]
def f(x):
R = x['shape'][0]
d = x['data']
a = []
for i in range(R):
for j in range(i+1, R):
si = sj = set()
if i in d: si = set(d[i])
if j in d: sj = set(d[j])
a.append((len(si | sj)-len(si&sj), [i,j]))
return max(a)[1]
-------------------------------
เราสามารถจัดเก็บตารางที่มีแต่เลข 0 กับ 1 ด้วย dict ที่มี
- key 'shape' ที่มี value เป็น
tuple 2 ช่องเก็บจำนวนแถวและจำนวนคอลัมน์
- key 'data' ที่มี value เป็น dict ที่มี
- key เป็นเลขแถว
- value เป็นลิสต์เก็บเลขคอลัมน์ในแถวนั้นที่มีข้อมูลเป็น 0
- คำว่าเลขแถวเลขคอลัมน์ คืออินเด็กซ์ของแถวและคอลัมน์
เช่น ตาราง
1111111
1110110
1000001
1111111
1111011
1111111
เก็บด้วย dict
{
'shape': (6,7),
'data': {
0: [],
1: [3,6],
2: [3,1,2,4,5],
4: [4]
}
}
ให้สังเกตว่า แถว 0, 3 และ 5 ไม่มีเลข 0 เลย
อาจมีหรือไม่มีเลขแถวใน dict ก็ได้
จงเขียนฟังก์ชัน f(x)
- รับ x เป็น dict ที่แทนตารางในลักษณะข้างต้น
- คืนลิสต์ของลิสต์ [i,j] ต่าง ๆ ที่
- i น้อยกว่า j
- i กับ j เป็นเลขแถวของคู่แถวที่เมื่อพิจารณารวมกัน
จะมี 0 อยู่ครบทุกคอลัมน์
- ลำดับของข้อมูลในลิสต์ผลลัพธ์จะเป็นอย่างไรก็ได้
เช่น ตาราง
1011
0110
1001
0100
แทนด้วย
x = {
'shape': (4,4),
'data' : {0:[1], 1:[0,3], 2:[1,2],
3:[0,2,3]}
}
คำสั่ง f(x) จะคืน [[0, 3], [1, 2], [2, 3]]
def f(x):
out = list()
R,C = x['shape']
d = x['data']
for i in range(R):
for j in range(i+1, R):
si = sj = set()
if i in d: si = set(d[i])
if j in d: sj = set(d[j])
if len(si | sj) == C:
out.append([i,j])
return out
-------------------------------