diff options
Diffstat (limited to 'challenge-257/eric-cheung/python/ch-2.py')
| -rwxr-xr-x | challenge-257/eric-cheung/python/ch-2.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/challenge-257/eric-cheung/python/ch-2.py b/challenge-257/eric-cheung/python/ch-2.py new file mode 100755 index 0000000000..3b13af9e91 --- /dev/null +++ b/challenge-257/eric-cheung/python/ch-2.py @@ -0,0 +1,35 @@ +
+## arrMatrix = [[1, 0, 0, 1], [0, 1, 0, 2], [0, 0, 1, 3]]
+## arrMatrix = [[1, 1, 0], [0, 1, 0], [0, 0, 0]] ## Example 1
+## arrMatrix = [[0, 1, -2, 0, 1], [0, 0, 0, 1, 3], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] ## Example 2
+## arrMatrix = [[1, 0, 0, 4], [0, 1, 0, 7], [0, 0, 1, -1]] ## Example 3
+## arrMatrix = [[0, 1, -2, 0, 1], [0, 0, 0, 0, 0], [0, 0, 0, 1, 3], [0, 0, 0, 0, 0]] ## Example 4
+## arrMatrix = [[0, 1, 0], [1, 0, 0], [0, 0, 0]] ## Example 5
+arrMatrix = [[4, 0, 0, 0], [0, 1, 0, 7], [0, 0, 1, -1]] ## Example 6
+
+t_arrMatrix = [arrLoop for arrLoop in zip(*arrMatrix)]
+
+## print (t_arrMatrix)
+
+arrLead_1_Pos = [-1 if len([1 for arrColLoop in arrRowLoop if arrColLoop == 1]) == 0 else min([nIndx for nIndx, arrColLoop in enumerate(arrRowLoop) if arrColLoop == 1]) for arrRowLoop in arrMatrix]
+
+## print (arrLead_1_Pos)
+
+arrLead_1_Positive = [nLoop for nLoop in arrLead_1_Pos if nLoop >= 0]
+arrLead_1_Pos_Positive = [nIndx for nIndx, nLoop in enumerate(arrLead_1_Pos) if nLoop >= 0]
+arrLead_1_Pos_Negative = [nIndx for nIndx, nLoop in enumerate(arrLead_1_Pos) if nLoop < 0]
+
+## print (arrLead_1_Positive)
+## print (arrLead_1_Pos_Positive)
+## print (arrLead_1_Pos_Negative)
+
+bResult = (sorted(arrLead_1_Positive) == arrLead_1_Positive)
+if bResult and len(arrLead_1_Pos_Negative) > 0:
+ bResult = (arrLead_1_Pos_Positive[-1] < arrLead_1_Pos_Negative[0])
+if bResult:
+ for arrLoop in t_arrMatrix[:-1]:
+ if sum([0 if rLoop == 0 else 1 for rLoop in arrLoop]) > 1:
+ bResult = False
+ break
+
+print (1 if bResult else 0)
|
