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

พลิกหลัก 123 ให้ได้ค่าสูงสุดใน Python

ภาพรวม

โจทย์: ตัวเลขประกอบด้วยหลัก 1,2,3 เท่านั้น ได้พลิกหลักหนึ่งหลักเป็น 3 หาค่าสูงสุดที่เป็นไปได้

ตัวอย่าง

อินพุต: 11332

หลักแรกที่ไม่ใช่ 3 คือหลักแรก (1) → พลิกเป็น 3 → 31332

กลยุทธ์

พลิกหลักซ้ายสุดที่ไม่ใช่ 3 จะให้ค่าเพิ่มมากที่สุด (place value สูงสุด)

โค้ด Python

class Solution:
    def solve(self, n):
        li = list(str(n))
        for x in range(len(li)):
            if li[x] != '3':
                li[x] = '3'
                return int("".join(li))
        return n

ob = Solution()
print(ob.solve(11332))

กรณีขอบ

  • ทุกหลักเป็น 3 แล้ว (เช่น 333) → คืนค่าเดิม
  • หลักเดียว (เช่น 1) → กลายเป็น 3

ผลลัพธ์

31332