เราสามารถจัดเก็บตารางที่มีแต่เลข 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 -------------------------------