สมมติว่ามีสตริง s ที่เป็น palindrome ต้องเปลี่ยนตัวอักษร 1 ตัว ให้ s ไม่เป็น palindrome และเล็กสุดตามลำดับเล็กซิโครกราฟิก
ตัวอย่าง: s = "level" ผลลัพธ์ "aevel" เปลี่ยน 'l' ตัวแรกเป็น 'a'
ขั้นตอนการแก้ปัญหา
- วน
iจาก 0 ถึงlen(s)//2 - 1:- ถ้า
s[i] != 'a': แปลงsเป็น list,s[i] = 'a', คืนjoin(s)
- ถ้า
- ถ้าทุกตัวในครึ่งแรกเป็น 'a' แล้ว: แปลงเป็น list,
s[-1] = 'b', คืนjoin(s)
ตัวอย่างโค้ด
class Solution:
def solve(self, s):
for i in range(len(s) // 2):
if s[i] != "a":
s = list(s)
s[i] = "a"
return "".join(s)
s = list(s)
s[-1] = "b"
return "".join(s)
ob = Solution()
s = "level"
print(ob.solve(s))
อินพุต
"level"
เอาต์พุต
aevel