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

แทรก 5 เพื่อทำให้ตัวเลขมากที่สุดใน Python

สมมติว่าเรามีตัวเลข n เราต้องหาตัวเลขสูงสุดที่เราสามารถสร้างได้โดยการแทรก 5 ที่ใดก็ตามในตัวเลข

ตัวอย่าง

หากอินพุตคือ n = 826 ผลลัพธ์จะเป็น 8526

ขั้นตอนการแก้ปัญหา

  1. temp := n เป็นสตริง
  2. ans := -inf
  3. ลูป i จาก 0 ถึงขนาดของ temp:
    • cand := สับสตริงของ temp จากดัชนี 0 ถึง i ต่อ '5' ต่อ สับสตริงของ temp จากดัชนี i ถึงสุดท้าย
    • ถ้า i เท่ากับ 0 และ temp[0] เท่ากับ '-' ให้ข้ามรอบนี้
    • ans := ค่าสูงสุดของ ans และตัวเลข cand
  4. คืนค่า ans

การใช้งาน

class Solution:
    def solve(self, n):
        temp = str(n)
        ans = float('-inf')
        for i in range(len(temp) + 1):
            cand = temp[:i] + '5' + temp[i:]
            if i == 0 and temp[0] == '-':
                continue
            ans = max(ans, int(cand))
        return ans

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

อินพุต

826

เอาต์พุต

8526