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

โปรแกรมแบ่งรายการสีใน Python


สมมติว่าเรามีรายการสตริงสี ซึ่งอาจมี "สีแดง" "สีเขียว" และ "สีน้ำเงิน" เราต้องแบ่งพาร์ติชั่นรายการเพื่อให้สีแดงมาก่อนสีเขียว และสีเขียวมาก่อนสีน้ำเงิน

ดังนั้น หากอินพุตเป็นสี =["สีน้ำเงิน", "เขียว", "น้ำเงิน", "แดง", "แดง"] ผลลัพธ์จะเป็น ['สีแดง', 'สีแดง', 'สีเขียว', ' ฟ้า', 'ฟ้า']

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

  • สีเขียว :=0, สีน้ำเงิน :=0, สีแดง :=0

  • สำหรับแต่ละสตริงใน strs ทำ

    • หากสตริงเหมือนกับ "สีแดง" แล้ว

      • strs[สีน้ำเงิน] :="สีน้ำเงิน"

      • สีน้ำเงิน :=สีน้ำเงิน + 1

      • strs[green] :="สีเขียว"

      • สีเขียว :=สีเขียว + 1

      • strs[สีแดง] :="สีแดง"

      • แดง :=แดง + 1

    • มิฉะนั้นเมื่อสตริงเหมือนกับ "สีเขียว" แล้ว

      • strs[สีน้ำเงิน] :="สีน้ำเงิน"

      • สีน้ำเงิน :=สีน้ำเงิน + 1

      • strs[green] :="สีเขียว"

      • สีเขียว :=สีเขียว + 1

    • มิฉะนั้นเมื่อสตริงเหมือนกับ "สีน้ำเงิน" แล้ว

      • strs[สีน้ำเงิน] :="สีน้ำเงิน"

      • สีน้ำเงิน :=สีน้ำเงิน + 1

  • ส่งคืนสตริง

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

ตัวอย่าง

class Solution:
   def solve(self, strs):
      green = 0
      blue = 0
      red = 0
      for string in strs:
         if string == "red":
            strs[blue] = "blue"
            blue += 1
            strs[green] = "green"
            green += 1
            strs[red] = "red"
            red += 1
         elif string == "green":
            strs[blue] = "blue"
            blue += 1
            strs[green] = "green"
            green += 1
         elif string == "blue":
            strs[blue] = "blue"
            blue += 1
      return strs
ob = Solution()
colors = ["blue","green", "blue", "red", "red"]
print(ob.solve(colors))

อินพุต

["blue","green", "blue", "red", "red"]

ผลลัพธ์

['red', 'red', 'green', 'blue', 'blue']