Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem có thể sắp xếp lại các hình chữ nhật theo thứ tự bề rộng không tăng dần trong Python hay không

Giả sử chúng ta có một danh sách các hình chữ nhật được biểu diễn bằng cách sử dụng chiều dài và chiều rộng của nó. Chúng ta có thể xoay bất kỳ hình chữ nhật nào một góc 90 độ để sau khi xoay, chiều rộng sẽ trở thành chiều dài và ngược lại. Chúng tôi phải kiểm tra xem chúng tôi có thể sắp xếp các hình chữ nhật theo thứ tự chiều rộng không tăng lên hay không.

Vì vậy, nếu đầu vào giống như rects =[[4, 5], [5, 7], [4, 6]], thì đầu ra sẽ là True vì độ rộng là [5,7,6] bây giờ nếu chúng ta xoay hai hình chữ nhật cuối cùng thì độ rộng sẽ là [5,5,4] không tăng.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • m:=99999
  • đối với tôi trong phạm vi từ 0 đến kích thước của trực tràng, hãy thực hiện
    • nếu chiều dài và chiều rộng tối đa của hình chữ nhật thứ i <=m, thì
      • m:=chiều dài và chiều rộng tối đa của hình chữ nhật thứ i
    • ngược lại khi chiều dài và chiều rộng tối thiểu của hình chữ nhật thứ i <=m
      • m:=chiều dài và chiều rộng tối thiểu của hình chữ nhật thứ i
    • nếu không,
      • trả về Sai
  • trả về True

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

def solve(rect):
   m = 99999
   for i in range(len(rect)):
      if max(rect[i][0], rect[i][1]) <= m:
         m = max(rect[i][0], rect[i][1])
      elif min(rect[i][0], rect[i][1]) <= m:
         m = min(rect[i][0], rect[i][1])
      else:
         return False
   return True
rects = [[4, 5], [5, 7], [4, 6]]
print(solve(rects))

Đầu vào

[[4, 5], [5, 7], [4, 6]]

Đầu ra

True