Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาความยาวของสัญญาณที่ยาวที่สุดสลับลำดับจากรายการตัวเลขในPython


สมมติว่าเรามีรายการของตัวเลขที่เรียกว่า nums เราต้องหาความยาวของลำดับรองที่ยาวที่สุดที่พลิกเครื่องหมายบนแต่ละหมายเลขที่ต่อเนื่องกัน

ดังนั้น หากอินพุตเป็น nums =[1, 3, -6, 4, -3] ผลลัพธ์จะเป็น 4 ตามที่เราเลือก [1, -6, 4, -3] ได้

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ตำแหน่ง :=0, ไม่ติด :=0
  • สำหรับแต่ละ n เป็น nums ทำ
    • ถ้า n <0 แล้ว
      • neg :=pos + 1
    • มิฉะนั้น
      • pos :=ลบ + 1
  • ผลตอบแทนสูงสุดของ pos และ neg

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

class Solution:
   def solve(self, nums):
      pos = neg = 0
      for n in nums:
         if n < 0:
            neg = pos + 1
         else:
            pos = neg + 1
      return max(pos, neg)
ob = Solution()
nums = [1, 3, -6, 4, -3]
print(ob.solve(nums))

อินพุต

[1, 3, -6, 4, -3]

ผลลัพธ์

4